#! /usr/bin/python3
import pygame
from plane_sprites import *
敌机出现事件
CREATE_ENEMY_EVENT = pygame.USEREVENT
发射子弹事件
HERO_FIRE_EVENT = pygame.USEREVENT + 1
class PlaneGame:
“”“飞机大战游戏类”""
def __init__(self):
print("游戏初始化...")
pygame.init()
self.screen = pygame.display.set_mode(SCREEN_RECT.size)
self.clock = pygame.time.Clock()
self.__create_sprites()
PlaneGame.__create_user_events()
def __create_sprites(self):
"""创建精灵组"""
self.back_group = pygame.sprite.Group(Background(), Background(True))
self.hero = Hero()
self.hero_group = pygame.sprite.Group(self.hero)
self.enemy_group = pygame.sprite.Group()
self.destroy_group = pygame.sprite.Group()
@staticmethod
def __create_user_events():
"""创建用户事件"""
# 每秒添加一架敌机
pygame.time.set_timer(CREATE_ENEMY_EVENT, 1 * 1000)
# 每秒发射两次子弹
pygame.time.set_timer(HERO_FIRE_EVENT, 500)
def start_game(self):
"""开启游戏循环"""
while True:
self.clock.tick(60)
self.__event_handler()
self.__update_sprites()
self.__check_collide()
pygame.display.update()
def __check_collide(self):
"""碰撞检测"""
# 子弹摧毁敌机
enemies = pygame.sprite.groupcollide(self.enemy_group,
self.hero.bullets,
False,
True).keys()
for enemy in enemies:
enemy.lif