第13章 · 外星人

项目1外星人入侵第2阶段:创建外星人群、实现移动、射杀外星人与游戏结束逻辑。

知识点 代码示例 章节测验(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