包括鼠标、键盘、定时Event和自定义的Event。
1、定时Event
# 1、每秒一次敌机生成事件
pg.time.set_timer(CREATE_ENEMY_EVENT, 2000)
pg.time.set_timer(ENEMY_FIRE_EVENT, 800)
2、自定义Event
def update(self):
# 炸弹移动
self.rect.y -= self.speed
# 销毁炸弹
if self.rect.y <= SCREEN_RECT.height // 2:
self.kill()
# 用事件实现全局通知,炸掉所有敌机、清理所有子弹
_bombevent = pg.event.Event(BOMB_EVENT)
pg.event.post(_bombevent)
3、各类Event响应及处理
def _EventHandle(self):
# 基础及自定义事件
for event in pg.event.get():
if event.type == pg.QUIT:
self._GameOver()
elif event.type == GAME_EXIT_EVENT:
self._GameOver()
elif event.type == GAME_PAUSE_EVENT:
self._GameP