예제 #1
0
def key_event(event):
    
    ##WORKING ON THIS: TRY TO MAKE THIS A LIST INSTEAD 
    ## OF ALL THE DIRECTIONS ONE AFTER ANOTHER
    if event.type == pygame.KEYUP:
        #tuple below is directions
        if event.key in keyDirs.keys():
            #for brick in bricks:
                #brick.setMove(moving=False, dir =brick.dir)
            actors.player.go(False)
    elif event.type == pygame.KEYDOWN:
        if event.key in keyDirs.keys():
            

            #print 'keys pressed'
            direction= keyDirs[event.key] 
            actors.player.changeDir(direction)
            actors.player.go(True)


        elif isKey(event, 'n'):
            reload(GUI2)
            print 'reloaded module GUI'
            pass

        elif isKey(event, 'c'):
            actors.player.shooter.fire(actors.player.direction,'bullet')
            print 'FIRED {0} TIMES'.format(actors.player.shooter.timesFired)
            pass 
        
        #clear screen, slopilly.
        elif isKey(event,'RETURN'):
            visuals.screen.fill((0,0,0))

        #elif isKey(event,'z'):
            #print 'circle: ',circle.getPos(), ' bob: ', bob.getPos()
            
        elif isKey(event,'z'):
            if hasattr(GUI2, 'root'):
                print GUI2.root.TEST
            
        #elif isKey(event,'x'):
            #'''check if circle is in bob's rect'''
            #print 'RECTS for circle: ', actors.player.rect.x,\
                                        #actors.player.rect.y,
            #print 'RECTS for bob: ', bob.rect.x,\
                                     #bob.rect.y
             
            #if actors.player.rect.colliderect(bob):
                #print 'COLLISION!!'   
               
        elif isKey(event,'x'):
            print 'player getPos', actors.player.getPos()
                            
                                        
            

        #change animation 
        elif event.key in (pygame.K_0,pygame.K_1,pygame.K_2,
                           pygame.K_3,pygame.K_4,pygame.K_5,
                           pygame.K_6,pygame.K_7,pygame.K_8,
                           pygame.K_9):
            
            keys = {pygame.K_0 :9,
                    pygame.K_1 :0,
                    pygame.K_2 :1,
                    pygame.K_3 :2,
                    pygame.K_4 :3,
                    pygame.K_5 :4,
                    pygame.K_6 :5,
                    pygame.K_7 :6,
                    pygame.K_8 :7,
                    pygame.K_9 :8}
            
            actors.player.curFrameNum = keys[event.key]
            actors.player.curFrame = actors.player.animList[actors.player.curFrameNum].copy()
            actors.player.direction = RIGHT
            actors.player.rotate()
            print 'changed frame'


        elif isKey(event,'m'):
            #func = GUI2.run
            #threading module
            #thread_GUI2 = threading.Thread(group = None, target = func, name='GUI THREAD')
            #thread_GUI2.start()
            
            #no threading
            GUI2.run()
            
            #multiprocessing module
            #thread_GUI2 = multi.Process(target = func, name='GUI THREAD')
            #thread_GUI2.start()
            
            print 'thread ran'
            
        elif isKey(event, 'b'):
            actors.spawner.spawn('mob')
            
        elif isKey(event, 'v'):
            global allGrids
            allGrids = tools.createGrid()
            print allGrids[0].coords, 'is the first grid'
            
        elif isKey(event, 'f'):
            tools.inWhichGrid(actors.player, allGrids)
            stats.lineDraw =  True
            
        elif isKey(event, 't'):
            
            visuals.multiLine('t**s though')
예제 #2
0
def gameStart():
    """use new or load to get the game going then hit the game loop
       soon after."""
    visuals.start()
    actors.newPlayer()
    #for FPS counting
    timeStart = time.clock()
    clock = pygame.time.Clock()
    
    
    
    
    #__main loop__:
    global gameRunning
    gameRunning = True
    
    print 'player pos before mainloop', actors.player.rect.center
    #print '-----  LOOP START  -----'
    while gameRunning:
        visuals.screen.fill(visuals.WHITE)
        
        #extra lines
        drawCrossScreen()
        if stats.lineDraw:
            tools.inWhichGrid(actors.player, allGrids)
        pygame.draw.line(visuals.screen, visuals.RED,
                                 actors.player.getPos(), (200, 200), 10)        
           
        
        #print 'player direction', actors.player.direction
        
        
        eventHandler()
        
        textDisplays()
        
        #loop over: men, bullets and shrapnel, AIs
        for object in MEN:
            object.shooter.getTarget()
            object.move()
            object.drawFrame()
            #a = object.calcAngle(RIGHT,(0.84996560382278508, -0.52683818418767669))
            #object.doRotate(a)
        for object in BULLETS:
            object.update()
        for object in SHRAPNEL:
            object.update()
        
        for ai in AIs:
            ai.check()           
            
            
        #FPS stuff
        stats.frame_count += 1
        if stats.frame_count % 15 == 0:
            timeEnd = time.clock()
            stats.frame_rate =  15 /  (timeEnd - timeStart)
            timeStart = timeEnd
        text = 'Frame = {0},  rate = {1:.2f} fps'.format(stats.frame_count, stats.frame_rate)
        fps_text = visuals.basicFont.render(text,  True, (0,0,0))    
        visuals.screen.blit(fps_text, (10, 10))
        stats.frame_history.append(text)
            
        
        visuals.pygame.display.flip()
        clock.tick(stats.FRAMERATE)
        sys.stdout.flush()
        
        ##print 'game running'
        ##testing for pos changed
        #print 'end loop:'
        #print '--original:', actors.player.originalXY
        #print '--rect:', actors.player.rect.center
        #print '--current:', actors.player.pos        
        
        
    pygame.quit()
    print 'tried to quit'