import pygame
from plane_sprites import *
class PlaneGame(object):
# 初始化 开始游戏类方法 启动游戏 def __init__(self):
# 创建窗口 时钟 调用创建精灵方法 self.screen = pygame.display.set_mode(SCREEN_RECT.size)
self.clock = pygame.time.Clock() self.__create_spites()
pygame.time.set_timer(CREATE_ENEMY_EVENT, 1000) pygame.time.set_timer(HERO_FIRE_EVENT, 500)
# 添加精灵 def __create_spites(self):
# 背景精灵 bg1 = BackGroup()
bg2 = BackGroup(True)
self.back_ground = pygame.sprite.Group(bg1, bg2) # 敌机精灵 self.enemy_group = pygame.sprite.Group()
# 英雄精灵 self.hero = Hero()
self.hero_group = pygame.sprite.Group(self.hero)
# 监听 def __event_handler(self):
# 关闭×退出游戏 for event in pygame.event.get():
if event.type == pygame.QUIT: PlaneGame.__Gameover()
elif event.type == CREATE_ENEMY_EVENT: # 创建敌机d enemy = Enemy()
self.enemy_group.add(enemy) elif event.type == HERO_FIRE_EVENT: self.hero.fire() # 按键 keys_pressed = pygame.key.get_pressed()
if keys_pressed[pygame.K_RIGHT]: self.hero.speed = 2
elif keys_pressed[pygame.K_LEFT]: self.hero.speed = -2 else:
self.hero.speed = 0
#碰撞检测 def __check_collide(self):
pygame.sprite.groupcollide(self.hero.bullets, self.enemy_group, True, True)
enemys = pygame.sprite.spritecollide(self.hero, self.enemy_group, True) if len(enemys) > 0: self.hero.kill()