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')
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'