一个基于《Python编程从入门到实践》第3版开发的经典 Pygame 游戏。
《外星人入侵》是一个经典的射击游戏,玩家控制一艘飞船在屏幕底部射击从顶部下降的外星人。这个项目展示了 Pygame 游戏开发的核心概念,包括精灵管理、碰撞检测、事件处理等。
- ✅ 流畅的游戏操作 - 响应式的键盘控制和鼠标点击
- ✅ 碰撞检测系统 - 精确的子弹、飞船和外星人碰撞检测
- ✅ 动态难度 - 随着关卡提升,外星人速度和数量增加
- ✅ 计分系统 - 实时得分显示和最高分记录
- ✅ 多关卡设计 - 消灭所有外星人后自动进入下一关卡
- ✅ 生命值系统 - 飞船有多条生命,被击中时失去一条生命
- ✅ 图形界面 - 直观的游戏界面和记分牌显示
| 操作 | 按键 |
|---|---|
| 向左移动 | ← (LEFT) |
| 向右移动 | → (RIGHT) |
| 发射子弹 | SPACE |
| 开始游戏 | 点击 "Play" 按钮 |
| 退出游戏 | Q 或关闭窗口 |
- Python 3.10+
- pygame 2.0+
- 克隆仓库
git clone https://github.com/chemark/alien-invasion.git
cd alien-invasion- 创建虚拟环境(可选但推荐)
python -m venv venv
source venv/bin/activate # macOS/Linux
# 或
venv\Scripts\activate # Windows- 安装依赖
pip install -r requirements.txt- 运行游戏
python alien_invasion.pyalien_invasion/
├── alien_invasion.py # 主游戏入口和游戏逻辑
├── settings.py # 游戏配置和常量设置
├── game_stats.py # 游戏统计信息(得分、生命值等)
├── ship.py # 飞船类(玩家控制的角色)
├── bullet.py # 子弹类(飞船发射的武器)
├── alien.py # 外星人类(敌人)
├── button.py # UI按钮类(游戏开始按钮)
├── scoreboard.py # 记分牌类(显示游戏信息)
├── requirements.txt # Python 依赖列表
├── images/ # 游戏资源文件夹
│ ├── ship.bmp # 飞船图片
│ ├── alien.bmp # 外星人图片
│ └── ... # 其他资源
├── cline/ # 开发文档
│ ├── 错误分析报告.md # 技术问题分析
│ ├── 外星人入侵游戏开发计划.md
│ └── ... # 其他文档
└── README.md # 本文件
主游戏类,负责:
- 游戏初始化和主循环
- 事件处理(键盘、鼠标)
- 游戏对象更新和绘制
- 碰撞检测和游戏逻辑
飞船类,负责:
- 飞船位置和图像管理
- 左右移动控制
- 屏幕边界碰撞检测
- 飞船绘制
子弹类,负责:
- 子弹位置和速度
- 屏幕外子弹移除
- 子弹数量限制管理
外星人类,负责:
- 外星人位置和移动
- 屏幕边缘检测
- 编队管理
- 速度管理
记分牌类,负责:
- 得分显示
- 最高分记录
- 关卡显示
- 剩余飞船数显示
- 游戏引擎:Pygame 2.6.1
- 编程语言:Python 3.13.2
- 版本控制:Git
- 类型检查:Pylance/Pyright
(可在运行游戏时体验)
这个项目展示了以下 Python 和游戏开发的重要概念:
- 面向对象编程 - 使用类和对象组织游戏代码
- Pygame 精灵系统 - 精灵类和精灵组的使用
- 事件处理 - 键盘和鼠标事件处理
- 碰撞检测 - 多种碰撞检测算法的应用
- 游戏循环 - 典型的游戏主循环结构
- 文件 I/O - 图片加载和数据持久化
- 性能优化 - 帧率控制和精灵管理
项目开发过程中遇到的技术问题已记录在 cline/ 文件夹中:
- Sprite 初始化问题 - 见
错误分析报告.md - RGB 颜色值范围 - 见
最终解决方案总结.md - 循环导入分析 - 见
pygame_circular_import_analysis.md
- 游戏架构设计
- 飞船和射击系统
- 外星人系统
- 碰撞检测
- 计分系统
- UI 界面
- 难度调整
- 音效(未来扩展)
- 高分排行榜(未来扩展)
- 多关卡设计(未来扩展)
-
视觉效果
- 添加爆炸动画
- 添加粒子效果
- 能量道具系统
-
音效系统
- 背景音乐
- 射击声效
- 碰撞声效
-
游戏玩法
- 暂停功能
- 设置菜单
- 多难度等级
-
高级功能
- 在线排行榜
- 游戏存档
- Boss 敌人
MIT License - 详见 LICENSE 文件
- GitHub: @chemark
- Email: chengchuanhao728494@gmail.com
欢迎提交 Issue 和 Pull Request!
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request
感谢 Eric Matthes 的《Python Crash Course》教材,这是学习 Python 和游戏开发的优秀资源。
最后更新: 2025年12月5日
状态: ✅ 游戏可玩,所有核心功能正常运行
当前版本: 1.0.0