《植物大战僵尸》游戏它是一款极富策略性的小游戏,集成了即时战略、塔防御战和卡片收集等要素,玩家控制植物抵御僵尸的进攻,保护这片植物园。记得小编刚工作的时候抱着IPAD经常玩到深夜。

最近在逛 Github 发现了一个用纯 Python 打造的《植物大战僵尸》,用鼠标收集阳光,选择植物卡片并播种植物,原汁原味,满满的回忆,目前该项目仅仅支持冒险模式。

01

安装并运行

1).下载项目代码

git clone git@github.com:marblexu/PythonPlantsVsZombies.git

2).切换到python3环境,官方建议使用 python3.7 ,安装 pygame

pip install pygame==1.9.6

3).切换到项目目录,运行项目代码

python main.py

安装成功项目效果如下所示:

02

如何玩

使用鼠标收集阳光,收集植物卡片和植物的种子,只需要鼠标点点点操作

可以通过更改 的数值来更改起始关卡

1).START_LEVEL_NUM 为1 和 2时表示起始为白昼模式,如下图:

2).START_LEVEL_NUM 为 3 时表示起始为夜晚模式,如下图:

3).START_LEVEL_NUM 为 4 时表示起始为传送带模式,如下图:

4).START_LEVEL_NUM 为 5 时表示起始为坚果保龄球模式模式,非常好玩,简单粗暴!如下图:

03

项目代码一览

项目代码主要分为这几个大的模块

它是用一个 event_loop 方法,透过 for event in pg.event.get() 这个循环,可以获取所有鼠标和键盘操作,这是 pygame 中很灵活的一个功能,得到鼠标点击动作之后,我们就需要得到鼠标点击的位置。上面箭头指的代码是获取鼠标点击的横纵坐标的值,这样就知道了一次鼠标点击的位置了。

植物大战僵尸里面有不同的僵尸,不同的植物,甚至不同的地图。比如说,在植物里面就有很多种:最基本的向日葵,豌豆射手,坚果。因为不同的植物有不同的属性,我们就需要用不同的类来表示植物。

它是用一个 event_loop 方法,透过 for event in pg.event.get() 这个循环,可以获取所有鼠标和键盘操作,这是 pygame 中很灵活的一个功能,得到鼠标点击动作之后,我们就需要得到鼠标点击的位置。上面箭头指的代码是获取鼠标点击的横纵坐标的值,这样就知道了一次鼠标点击的位置了。

植物大战僵尸里面有不同的僵尸,不同的植物,甚至不同的地图。比如说,在植物里面就有很多种:最基本的向日葵,豌豆射手,坚果。因为不同的植物有不同的属性,我们就需要用不同的类来表示植物。

根据上面代码可知,会先写一个 Plant 基类,然后其他植物的类会继承这个 Plant 基类

在这个游戏中,僵尸移动的操作是连帧的。而不是完全是平移的。可以看下作者是如何处理动画连帧操作的。如下图:

这就是一组普通的僵尸,不仔细看的话以为每个图片都是一样的,其实仔细看的时候就会发现,每个图片僵尸的动作都是有细微差别的。在僵尸行走的过程中,实际上是在不断地切换着一组图片。这样下来,我们看到的僵尸的动作就是连贯的。

04

如何作弊

通过上面介绍得知,该项目使用 json 文件存储关卡数据(例如僵尸的位置和时间,背景信息),我们可以通过修改 json 文件内容来修改游戏参数,比如把调一下初始阳光的数量,调整僵尸出现的位置。例如,如果source/constants.py 中的 START_LEVEL_NUM 值为 3 ,要对应的修改 source/data/map/level_3.json

init_sun_value 对应的是初始化阳光的数值,time 是僵尸出现的时间,单位是毫秒,map_y 是僵尸出现的位置,地图上从上向下开始数,初始位置为0 。

有兴趣的小伙伴可以下载一下这个库,拿它来学习 Python 练手是一个不错的选择。

链接:

往期热门系列文章:

Python心得和技巧:

数据分析和爬虫:

更多原创的精彩干货可以去公众号【菜鸟学Python】找我们。目前原创近400个趣味原创案例(Python入门,进阶,经验技巧,爬虫,数据分析,机器学习,面试经验等),欢迎来公众号找我们交流!

python植物大战僵尸辅助器手机版_GitHub又放大招,Python版本的植物大战僵尸还能作弊玩!...相关推荐

  1. python自动回复机器人手机版_GitHub - HZQHZA/wxpy: Python 写 微信聊天 根据 自动回复 接入机器人 等等.......

    wxpy Python 写 微信聊天 根据 自动回复 接入机器人 等等.... wxpy: 用 Python 玩微信 #项目介绍 wxpy登录就给好友发消息 发图片   自动回复信息   添加好友自动 ...

  2. 在python官网如何下载手机版_如何下载各种版本Python?

    1.目的 本文目的在于,对于不熟悉Python的人,教你: 1. 从哪里找到可以下载到各种版本的,包括Python 2.x和Python 3.x的最新版本的Python. 2.以及解释一下,如何选择合 ...

  3. python单机小游戏大全手机版宫殿_用Python实现童年小游戏俄罗斯方块!别说还挺好玩!...

    存储图书的相关信息,包括书名,作者,类型,数量.主码是name和author. 2.2 borrow表 借书单,存储借书人ID,书名,作者,借书时间.主码是name和author. 2.3 user表 ...

  4. 头条视频 消重 滤镜 视频md5修改器手机版

             头条视频 消重 滤镜 视频md5修改器手机版          直播打赏:很多男性角色依靠直播及带领粉丝玩游戏获取收益.,如今,短视频内容已成为继纯文字内容.图文内容之后的第三次大众 ...

  5. 手游无限多开器安卓版_手游多开器安卓版-手游多开器手机版 _5577安卓网

    手游多开器手机版下载,本站为大家带来的是一款能够帮助大家多开手游的应用app,有需要的亲们就来下载可以同时登陆多个账号,满足大家在游戏中的相关需求,喜欢的亲们就不要错过啦! [温馨提示] 目前提供的是 ...

  6. android 取色器_音乐剪辑器手机版下载-音乐剪辑器app下载v9.10.15 安卓免费版

    音乐剪辑器app是非常棒的剪辑软件,大家可以使用它对各种彩铃铃声,原版音乐进行剪辑编辑处理,功能强大完全免费,而且操作非常简单,有需要的朋友赶快下载试试吧! 音乐剪辑器手机版介绍 有时候想把多首歌曲合 ...

  7. android在线播放儿歌源码,亲宝儿歌播放器手机版

    亲宝儿歌播放器手机版是一款移动端的儿歌播放器app,由亲亲宝宝网官方打造.软件独创"睡眠模式"和"收藏"两大功能,让宝宝们能在睡眠后,播放器自动停止,非常智能化 ...

  8. mt管理器java版下载_mt管理器手机版

    详情 mt管理器手机版是一款优秀的文件管理的手机app,在mt管理器无广告版中,可以管理你的手机文件,还可以利用手机修改apk,功能强大.mt管理器手机版,保留了原来的双窗口操作方式,新增了许多功能. ...

  9. fifa14 android 补丁 修改器,FIFA14修改器手机版

    FIFA14修改器手机版这是一款非常好玩的足球游戏,玩家在这款游戏中有着多重身份,每一种游戏模式都是一重身份,玩家可以是一名非常优秀的足球运动员,你也可以是一名足球俱乐部的经理,你需要具有独特的眼光, ...

最新文章

  1. 关于《重启人工智能》11条建议的思考
  2. 逃离湾区,下一站是哪里?西雅图 PK 奥斯汀
  3. jmeter之图片上传
  4. MySQL in语句排序
  5. jdbc 生成建表语句_JDBC数据库连接怎么操作?
  6. python3 爬虫例子_如何让你写的爬虫速度像坐火箭一样快【并发请求】
  7. linux下zabbix安装
  8. plsql查询乱码问题解决
  9. tina中信号带宽_如何评测示波器带宽
  10. SAP License:SAP标准教材的编号原则
  11. mysql timestamp 当前_技术分享 | MySQL 复制那点事 - Seconds_behind_Master 参数调查笔记
  12. java:linux上找出最耗资源的线程方法
  13. 终于理解你的软件 搞那么多年了 (通用权限管理系统组件源码完善了7-8年)
  14. 【剖析 | SOFARPC 框架】之SOFARPC 线程模型剖析
  15. spring--bean后置处理器(BeanPostProcessor)原理解析
  16. 初学Android,图形图像之使用Canvas,Paint绘图(二十五)
  17. (一)微信小程序云开发之上传图片(全流程讲解)
  18. ViewPager+Fragment实现页卡切换
  19. Cmake管理统一版本的SLAM第三方库
  20. Linux 使用 fish shell

热门文章

  1. 海思Hi3518EV200+4G+RS232视频监控摄像开发板防雷防静电推荐图
  2. 对谷歌输入法的几点疑虑
  3. 小米手机风筝守护显示服务器异常,风筝守护只能小米用吗
  4. bzoj 4765: 普通计算姬
  5. 车载导航产品的数字地图格式
  6. 【Linux学习笔记】Linux命令压缩解压文件
  7. nvme固态硬盘安装win10填坑记
  8. 使用zerotier one实现内网穿透及MOON架设过程整理
  9. charles安装证书并信任证书,仍然无法获取手机上的请求
  10. PE文件之IMAGE_DOS_HEADER