Skip to content

Repository files navigation

飞机大战

一个基于 Pygame 的纵版飞机射击小游戏(Python 3),支持鼠标 / 键盘操控、敌机弹幕、血量系统、道具补给、多等级难度与最高分记录。

功能特性

  • 开始界面:标题、一句介绍语、最高分与"开始游戏 / 设置"按钮
  • 设置界面:6 个键位(上 / 下 / 左 / 右 / 炸弹 / 暂停)可重新绑定,鼠标操控开关,一键恢复默认,配置保存到 settings.json
  • 鼠标移动或键盘操控飞机
  • 小、中、大三种敌机,击落有不同得分;中、大敌机会发射弹幕,大敌机三连发
  • 玩家血量条:被敌弹命中 -10,被敌机撞击 -25,受伤后短暂无敌(闪烁提示)
  • 补给道具:双倍子弹、全屏炸弹(带闪屏特效)
  • 5 个难度等级,随得分逐步升级:增兵、提速、敌机射速加快
  • 3 条生命,碰撞扣血,血量归零后重生
  • 暂停 / 继续(按钮或设置的暂停键),最高分本地记录(record.txt,自动创建)
  • 游戏结束后可"再来一次"直接重开,或点"结束游戏"返回开始界面
  • 中文界面:优先使用打包的开源游戏字体"得意黑"(Smiley Sans,OFL 协议),缺失时自动回退系统字体,再无中文字体则显示英文界面
  • 完整的音效与背景音乐

环境要求

  • Python 3.6+
  • Pygame 2.0+

安装与运行

# 安装依赖
pip install -r requirements.txt

# 运行游戏
python main.py

操作说明

操作 按键 / 方式
移动飞机 鼠标移动,或 W / A / S / D(可在设置界面修改)
释放炸弹 Space(需先拾取炸弹补给,可在设置界面修改)
暂停 / 继续 Esc 或点击右上角暂停按钮(可在设置界面修改)
打开设置 开始界面点击"设置"按钮
开始游戏 / 退出 开始界面点击"开始游戏",Esc 退出

项目结构

.
├── main.py        # 游戏主程序(开始界面 / 设置界面 / 游戏主循环 / 结束界面)
├── config.py      # 键位与选项设置(settings.json 读写)
├── myplane.py     # 我方飞机(含血量)
├── enemy.py       # 敌方飞机(小 / 中 / 大,可射击)
├── bullet.py      # 子弹(我方子弹 / 敌方子弹)
├── supply.py      # 补给道具
├── images/        # 游戏图片资源
├── sound/         # 音效与背景音乐
├── font/          # 字体文件(含打包的游戏字体"得意黑")
└── record.txt     # 最高分记录(自动生成)

字体授权

界面优先使用打包的开源字体得意黑(Smiley Sans),采用 SIL Open Font License 1.1 协议,作者 atelier-anchor,可从 GitHub 获取。字体缺失时自动回退系统中文字体,请确保运行环境保留对应的字体授权。

致谢

游戏原版及素材(图片、音效)出自小甲鱼《零基础入门学习 Python》系列课程的"飞机大战"教学案例,感谢原作者。

许可证

MIT License

About

Plane War Pygame game

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Contributors

Languages