pypvz/README.md
2022-04-05 01:38:04 +08:00

3.1 KiB
Raw Blame History

Python版植物大战僵尸

植物大战僵尸游戏的Python实现

仅供个人学习和非商业用途。如果这个游戏侵犯了版权,请告诉我

  • 已有的植物:向日葵,豌豆射手,坚果墙,寒冰射手,樱桃炸弹,三线射手,大嘴花,小喷菇,土豆雷,地刺,胆小菇,倭瓜,火爆辣椒,阳光菇,寒冰菇,魅惑菇
  • 已有的僵尸:普通僵尸,旗帜僵尸,路障僵尸,铁桶僵尸,读报僵尸
  • 使用 JSON 格式的文件存储进度数据 (例如僵尸出现的位置和时间,背景信息)
  • 支持选择植物卡片
  • 支持白昼模式,夜晚模式,传送带模式和坚果保龄球模式
  • 支持背景音乐播放
  • 支持全屏模式
    • F键进入全屏模式,按U键恢复至窗口模式

环境要求

  • Python >= 3.7
  • Python-Pygame >= 1.9

开始游戏

使用仓库源代码

python main.py

使用Windows可执行文件

在本仓库的Release页面中下载pypvz.exe文件,双击运行即可

方法

  • 使用鼠标收集阳光,种植植物
  • 你可以通过更改 source/constants.py 中的 START_LEVEL_NUM 的数值来更改起始关卡:
    • 冒险模式:
      • 1 和 2白昼模式
      • 3夜晚模式
    • 小游戏模式:
      • 1传送带模式
      • 2坚果保龄球模式
  • 注意:目前单文件发布版本不支持自定义调整关卡

Windows单文件封装

编译依赖:

  • Python >= 3.7
  • Python-Pygame >= 1.9
  • Nuitka
  • MinGW-w64或其他C编译器
  • ccache
  • depends
  • python-zstandard可选

在编译环境安装不全时Nuitka可以自动安装MinGW-w64、ccache和depends

在仓库所在文件夹执行:

nuitka --mingw --standalone --onefile --show-progress --show-memory --windows-disable-console --output-dir=out --windows-icon-from-ico=pypvz.ico --include-data-dir=resources=resources main.py

加了背景音乐播放功能之后需要执行:

nuitka --mingw --standalone --onefile --show-progress --show-memory --output-dir=out --windows-icon-from-ico=pypvz.ico --include-data-dir=resources=resources --include-data-file=C:\Users\17265\AppData\Local\Programs\Python\Python310\Lib\site-packages\pygame\libogg-0.dll=libogg-0.dll --include-data-file=C:\Users\17265\AppData\Local\Programs\Python\Python310\Lib\site-packages\pygame\libopus-0.dll=libopus-0.dll --include-data-file=C:\Users\17265\AppData\Local\Programs\Python\Python310\Lib\site-packages\pygame\libopusfile-0.dll=libopusfile-0.dll --windows-disable-console main.py

其中,C:\Users\17265\AppData\Local\Programs\Python\Python310\Lib\site-packages\pygame\*.dll应当替换为*.dll实际所在路径

可执行文件生成路径为./out/main.exe

计划(可能无法实施):

  • 增加保存数据文件以存储用户进度的功能
  • 更改僵尸生成方式
    • 将僵尸生成更随机化
  • 增加更多植物、僵尸类型与游戏功能、模式,尽量符合原版基本设计

截屏

截屏1 截屏2 截屏3