1. 开始进行外星人移动时,虽然外星人图像向右移动,但是历史图像没有消失,导致外星人重影
问题代码:
alien_invasion.py
#开始游戏主循环
while True:
#监视键盘和鼠标事件
gfunctions.check_events(ai_setting, screen, ship, bullets)
ship.update()
gfunctions.create_fleet(ai_setting, screen, ship, aliens)
gfunctions.update_bullets(bullets)
gfunctions.update_aliens(aliens)
gfunctions.update_screen(ai_setting, screen, ship, aliens, bullets)
分析与解决:
因为gfunctions.create_fleet方法放在主循环里进行执行,反复调用后生成了一群群的外星人,所以重影了
将gfunctions.create_fleet方法移到主循坏外初始化部分即可
def run_game():
#初始化游戏,创建一个屏幕对象
# 创建一个用于存储子弹的编组
# 创建一个外星人组
gfunctions.create_fleet(ai_setting, screen, ship, aliens)
#开始游戏主循环
while True:
#监视键盘和鼠标事件
gfunctions.check_events(ai_setting, screen, ship, bullets)
ship.update()
gfunctions.update_bullets(bullets)
gfunctions.update_aliens(aliens)
gfunctions.update_screen(ai_setting, screen, ship, aliens, bullets)