第13章 · 外星人
项目1外星人入侵第2阶段:创建外星人群、实现移动、射杀外星人与游戏结束逻辑。
知识点讲解
外星人群
创建Alien类并生成一群外星人:根据屏幕宽度计算一行能容纳的数量,用嵌套循环按行按列放置。让外星人群左右移动,碰到屏幕边缘时向下移动并改变方向。检测子弹与外星人的碰撞,击中后同时删除子弹和外星人。
游戏结束逻辑
为玩家设置飞船数量(生命值)。当外星人到达屏幕底部或与飞船碰撞时,减少一艘飞船并重置外星人群;飞船用完则游戏结束。游戏结束后的处理方式包括暂停游戏、显示结束信息或提供重新开始选项。
代码示例
外星人碰撞检测
演示sprite碰撞检测逻辑。
# 子弹与外星人群碰撞
hits = pygame.sprite.groupcollide(bullets, aliens, True, True)
if hits:
for aliens_hit in hits.values():
score += 10 * len(aliens_hit)
# 外星人到达底部
for alien in aliens.copy():
if alien.rect.bottom >= screen_rect.bottom:
ship_hit()
break