def play(view): map = Rpg.map player1 = Rpg.player1 # 用于计算P1的自动Stop timeImgFilp = datetime.now() timePass = datetime.now() - timeImgFilp # 用于限制游戏速度 timeSpeed = datetime.now() timePassSpeed = datetime.now() - timeSpeed fires = Fires.getFires() fires.view = map.bufViewMap while True: pad = psp2dex.Controller() if pad.circle or pad.esc: break if pad.altenter: view = pygame.display.set_mode((Inc.ScreenW, Inc.ScreenH), pygame.FULLSCREEN) if pad.left: timeImgFilp = datetime.now() for i in range(1, 8): if PlayerMoveLeft(player1, map): break if pad.right: timeImgFilp = datetime.now() for i in range(1, 8): if PlayerMoveRight(player1, map): break if pad.up: timeImgFilp = datetime.now() for i in range(1, 8): if PlayerMoveUp(player1, map): break if pad.down: timeImgFilp = datetime.now() for i in range(1, 8): if PlayerMoveDown(player1, map): break if pad.square: # J 开火 fire = Fire(player1.x, player1.y, player1.direction, map) fires.fires.append(fire) pass if pad.space: Action(player1, map) pass # 1P 自动站住 timePass = datetime.now() - timeImgFilp if timePass.days * 24 * 60 * 60 * 1000 + timePass.seconds * 1000 + timePass.microseconds / 1000 > 110: timeImgFilp = datetime.now() player1.stop() view.fill((0, 0, 0)) map.draw() player1.draw() fires.update() fires.draw() map.present() # debug info player1.drawDebug(view) map.drawDebug(view) t = "hotMap(%d,%d), view(%d,%d in %d,%d)" % \ (map.hotMapX, map.hotMapY, map.viewX, map.viewY, map.mapWPix, map.mapHPix) psp2dex.drawText(view, t, 0, 10) t = "view(%d,%d,%d)" % \ (map.viewX, Inc.ScreenW / 2, map.viewX - Inc.ScreenW / 2) psp2dex.drawText(view, t, 0, 20) # end debug info # 限制游戏速度 while True: timePassSpeed = datetime.now() - timeSpeed timePassSpeedmicroseconds = timePassSpeed.days * 24 * 60 * 60 * 1000 + timePassSpeed.seconds * 1000 + timePassSpeed.microseconds / 1000 if timePassSpeedmicroseconds > 30: timeSpeed = datetime.now() break pygame.display.flip() print "The End."