晕丶名字真难找 晕丶名字真难找
关注数: 14 粉丝数: 1,063 发帖数: 5,190 关注贴吧数: 17
新手求教 飞机大战在飞机移动的过程中无法触发发射子弹事件 import pygame from plane_sprites import * pygame.init() class PlaneGame(object): """游戏主程序""" def __init__(self): # 创建游戏窗口 self.screen = pygame.display.set_mode(SCREEN_RECT.size) # 创建游戏时钟 self.clock = pygame.time.Clock() # 调用私有方法 self.__create_sprites() # 设置定时器时间 pygame.time.set_timer(CREATE_ENEMY_EVENT, 1000) pygame.time.set_timer(HERO_FIRE_EVENT, 500) def __create_sprites(self): bg1 = Background() bg2 = Background(True) self.back_groud = pygame.sprite.Group(bg1, bg2) # 创建敌机精灵组 self.enemy_group = pygame.sprite.Group() # 创建英雄精灵和精灵组 self.hero = Hero() self.hero_group = pygame.sprite.Group(self.hero) def start_game(self): while True: # 刷新帧率 self.clock.tick(FRAME_PER_SEC) # 事件监听 self.__event_handler() # 碰撞检测 self.__check_collide() # 更新精灵 self.__update_sprites() # 更新显示 pygame.display.update() def __event_handler(self): for event in pygame.event.get(): if event.type == pygame.QUIT: PlaneGame.game_over() elif event.type == CREATE_ENEMY_EVENT: # print('敌机出现') # 创建敌机精灵 enemy = Enemy() self.enemy_group.add(enemy) # elif event.type==pygame.KEYDOWN and event.key==pygame.K_RIGHT: # print('向右移动') # 使用键盘方法 keys_pressed = pygame.key.get_pressed() if keys_pressed[pygame.K_RIGHT]: self.hero.speed = 3 elif keys_pressed[pygame.K_LEFT]: self.hero.speed = -3 elif event.type == HERO_FIRE_EVENT: self.hero.fire() else: self.hero.speed = 0 def __check_collide(self): # 子弹摧毁敌机 pygame.sprite.groupcollide(self.hero.bullets, self.enemy_group, True, True) # 敌机撞毁英雄 # enemies=pygame.sprite.spritecollide(self.hero,self.enemy_group,True) # if len(enemies): # self.hero.kill() # PlaneGame.game_over() def __update_sprites(self): self.back_groud.update() self.back_groud.draw(self.screen) self.enemy_group.update() self.enemy_group.draw(self.screen) self.hero_group.update() self.hero_group.draw(self.screen) self.hero.bullets.update() self.hero.bullets.draw(self.screen) @staticmethod def game_over(): pygame.quit() exit() if __name__ == '__main__': run = PlaneGame() run.start_game()
1 下一页