植物大战僵尸:游戏中的“修改器【Python】”一定是作弊?善用增加趣味性!
《植物大战僵尸》游戏它是一款极富策略性的小游戏,集成了即时战略、塔防御战和卡片收集等要素,玩家控制植物抵御僵尸的进攻,保护这片植物园。记得小编刚工作的时候抱着IPAD经常玩到深夜。
最近在逛 Github 发现了一个用纯 Python 打造的《植物大战僵尸》,用鼠标收集阳光,选择植物卡片并播种植物,原汁原味,满满的回忆,目前该项目仅仅支持冒险模式。
老规矩,需要打包好的软件关注小编,QQ群:721195303领取。
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 中很灵活的一个功能,得到鼠标点击动作之后,我们就需要得到鼠标点击的位置。上面箭头指的代码是获取鼠标点击的横纵坐标的值,这样就知道了一次鼠标点击的位置了。
植物大战僵尸里面有不同的僵尸,不同的植物,甚至不同的地图。比如说,在植物里面就有很多种:最基本的向日葵,豌豆射手,坚果。因为不同的植物有不同的属性,我们就需要用不同的类来表示植物。
根据上面代码可知,会先写一个 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学习群:721195303,群里都是学Python的,如果你想学或者正在学习Python ,欢迎你加入,大家都是软件开发党,不定期分享干货(只有Python软件开发相关的),包括我自己整理的一份2021最新的Python进阶资料和零基础教学,欢迎进阶中和对Python感兴趣的小伙伴加入!
植物大战僵尸:游戏中的“修改器【Python】”一定是作弊?善用增加趣味性!相关推荐
- 针对“扫雷“和“植物大战僵尸“游戏,分析,扫描,阳光值,植物,金币,僵尸的分析逆向
<软件逆向分析> 2022年9月 目录 {#目录 .TOC-Heading} [一.实验工具介绍 3](#一实验工具介绍) [二.针对"扫雷"游戏 3](#二针对扫雷游 ...
- JAVA实现简单“伪植物大战僵尸“游戏
用两天时间试着用JAVA模拟植物大战僵尸写的游戏 程序只用了2天时间完成,BUG较多,也没有做过多优化,功能也很简单,最后也没有想去改进 源代码免费提供,CSDN上的需要积分下载,可以去GIT上下载* ...
- 第 四 章 “植物大战僵尸”游戏逆向分析
4.1 针对"阳光值" 4.1.1 寻找阳光地址的三种方法 (1)精准扫描. 数值填入50,类型选择精确数值,数值类型一般都为四字节,选好后单击首次扫描,扫描结束后结果栏出现很多结 ...
- 植物大战僵尸2平安时代全新玩法
说到益智策略类塔防御战游戏,那植物大战僵尸绝对是不二之选,开创了益智策略类塔防御战的新纪元,植物大战僵尸系列包含了全明星.西游版.长城板.原版等众多版本,而最受欢迎的无疑是新添的:植物大战僵尸2平安时 ...
- 以休闲游戏“植物大战僵尸”为例,制作无限阳光修改器
制作游戏修改器,应该有很多人对这类内容感兴趣吧. 发现这个游戏纯属巧合,一日我在百度搜索"植物"这个词时,搜索框下方就列出一大堆"植物大战僵尸"的相关内容,于时 ...
- 【CE入门教程】使用Cheat Engine(CE)修改游戏“植物大战僵尸”之植物篇
目录 1.单卡片无CD 1.1 思路一 1.2 思路二 2.全卡片无CD 3.豌豆射手射速修改(修改植物射速) 4.实现豌豆射手发射"玉米加农炮"(思路) 上一期教程中,我们学习了 ...
- 【CE入门教程】使用Cheat Engine(CE)修改游戏“植物大战僵尸”之其他篇
目录 1.跳关(任意选择关卡) 2.修改金币值 3.实现自动收集阳光 上一期教程中,我们学习了寻找植物大战僵尸僵尸距离基址.实现"秒杀"僵尸的方法.PS:上篇链接:[CE入门教程] ...
- 【CE入门教程】使用Cheat Engine(CE)修改游戏“植物大战僵尸”之僵尸篇
目录 1.寻找僵尸位置基址 2.实现"秒杀"僵尸(修改僵尸血量) 上一期教程中,我们学习了修改植物大战僵尸的单卡片无CD.全卡片无CD.豌豆射手射速修改以及实现豌豆射手发射&quo ...
- java设计建议植物大战僵尸_基于Java的游戏设计之植物大战僵尸
植物大战僵尸这款游戏相信大家或多或少都玩过,那么大家有没有想过自己尝试着做一下植物大战僵尸的游戏设计呢.本文将基于Java语言为大家展示如何开发出植物大战僵尸游戏的简易版本,主要内容包括规则.对象.功 ...
- 原生JS实现的h5小游戏-植物大战僵尸
代码地址如下: http://www.demodashi.com/demo/12755.html 项目介绍 本项目是利用原生js实现的h5小游戏-植物大战僵尸,主要结合了一下自己对于h5小游戏的理解, ...
最新文章
- 深入浅出聊聊Kubernetes存储(二):搞定持久化存储
- 马斯克回应“逃税”:没有从特斯拉领取高薪 一直在按规定缴税
- Android学习之路十三:BroadCast
- 小心这 10 个云计算错误!
- 【汇编语言与计算机系统结构笔记13】简单的上机过程示例
- powerdesigner中生成数据库脚本时出现长度限制问题的解决方法
- MySQL 03-MySQL安装-直接解压二进制文件(CentOS6)
- LC3 正式升级 Open Source Summit,分论坛主题活动精彩纷呈
- 2020-03-13 MySQL 8 绿色安装
- Command not found 解决
- 双系统装完只能u盘启动_双系统启动引导修复 双系统启动引导设置教程
- vue面试常见问题小结
- 计算机课堂小游戏活跃气氛,活跃气氛的70个小游戏 比较嗨的暖场游戏
- 运维工程师发展受限,那么运维转型大数据是个机会吗?
- Python 实现 Swagger yaml 格式 api 文档合并
- 解答:什么样的企业才适合引入OA办公系统?
- [QT][问题]关于QT语言家使用失败的原因之一
- 企业微信会话存档功能开启
- java咖啡标志_50个包含咖啡的创意LOGO设计
- 【论文向】NAACL2022 汉语纠错多源、多参考数据集MuCGEC
热门文章
- 如何求地球上两点之间的最短距离_高中数学“最实在”的蒙题技巧,让高中数学短时间内突破120分...
- 噪声、白噪声、高斯噪声、高斯白噪声以及加性和乘性噪声
- Filter过滤器:使用过滤器保护指定资源,只有登录用户才能访问。若访问内容时用户没有登录则跳转到登录页面。
- 海南自贸区电信行业环境分析
- Mac如何清理应用软件
- ASN.1入门(超详细)
- 个人申请软件著作权的记录
- movs 数据传送指令_数据传送指令之:MOV指令
- 一、Netflix Eureka
- db2 创建实例,创建数据库,创建表