python植物大战僵尸代码写完了怎么运行_植物大战僵尸的代码如何使用python来实现...
前言
文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。
作者:程序IT圈
PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http://t.cn/A6Zvjdun
功能介绍
最近一直在给这个植物大战僵尸游戏添加新的植物和僵尸, 因为网上的图片资源有限,能加的植物和僵尸比较少, 目前进展如下。
功能实现如下:
支持的植物类型:太阳花,豌豆射手,寒冰射手,坚果,樱桃炸弹。新增加植物:双重豌豆射手,三重豌豆射手,食人花 ,小喷菇,土豆地雷,倭瓜。
支持的僵尸类型:普通僵尸,棋子僵尸,路障僵尸,铁桶僵尸。新增加读报僵尸。
使用json文件保存关卡信息,设置僵尸出现的时间和位置。
增加每关开始时选择上场植物。
增加除草机。
下面是游戏的截图:
植物卡片选择和种植
如图所示,游戏中可以种植物的方格一共有45个(有5行,每行9列)。
这篇文章要介绍的是:
上方植物卡片栏的实现。
点击植物卡片,鼠标切换为植物图片。
鼠标移动时,判断当前在哪个方格中,并显示半透明的植物作为提示。
代码实现
所有的植物卡片的名称和属性都保存在单独的list中,每个list index都对应一种植物。
比如list index 0 就是太阳花:
card_name_list[0] 是太阳花卡片的名字,用来获取太阳花卡片的图片。
plant_name_list[0] 是太阳花的名字,用来获取太阳花卡片的图片。
plant_sun_list[0] 是种植太阳花需要花费的太阳点数。
plant_frozen_time_list[0] 是太阳花的冷却时间。
植物卡片类
每个植物卡片是一个单独的Card类,用来显示这个植物。
checkMouseClick函数:判断鼠标是否点击到这个卡片;
canClick:判断这个卡片是否能种植(有没有足够的点数,是否还在冷却时间内);
update 函数:通过设置图片的透明度来表示这个卡片是否能选择。
卡片栏类
MenuBar类显示图3中的植物卡片栏:
self.sun_value:当前采集的太阳点数;
self.card_list: 植物卡片的list;
setupCards函数:遍历初始化init函数中传入这个关卡选好的植物卡片list,依次创建Card类,设置每个卡片的显示位置;
checkCardClick函数:检查鼠标是否点击了卡片栏上的某个植物卡片,如果选择了一个可种植的卡片,返回结果。
代码:
鼠标图片切换
setupMouseImage 函数实现鼠标图片切换为选中的植物:
self.mouse_image :根据 plant_name 获取选中的植物图片;
self.mouse_rect:选中植物图片的位置,在drawMouseShow函数中,需要将植物图片的位置设置成当前鼠标的位置;
pg.mouse.set_visible(False):隐藏默认的鼠标显示,这样效果就是鼠标图片切换为选中的植物了。
提示种在哪个方格中
先看下map类,代码在sourcecomponentmap.py 中:
self.map:二维list,用来保存每个方格的状态。每个entry初始化为 0, 表示可以种植物,值为1时表示这个方格已经种了植物。
getMapIndex 函数:传入参数是游戏中的坐标位置(比如当前鼠标的位置),返回该位置在地图的哪个方格中。
getMapGridPos 函数:传入一个方格的index,返回在该方格中种植物的坐标位置。
showPlant 函数:根据传入的坐标位置,判断该位置所在的方格是否能种植物,如果能种,就返回返回在该方格中种植物的坐标位置。
代码在sourcestatelevel.py中:
canSeedPlant 函数:判断当前鼠标位置能否种植物;
setupHintImage 函数:如果当前鼠标位置能种植物,且有选择了一个植物卡片,则设置self.hint_image 显示当前会在哪一个方格中种植物,self.hint_rect 是植物种的坐标位置。
植物大战僵尸的代码如何使用python来实现
松鼠爱吃饼干2020-04-14 15:17
前言
文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。
作者:程序IT圈
PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http://t.cn/A6Zvjdun
功能介绍
最近一直在给这个植物大战僵尸游戏添加新的植物和僵尸, 因为网上的图片资源有限,能加的植物和僵尸比较少, 目前进展如下。
功能实现如下:
支持的植物类型:太阳花,豌豆射手,寒冰射手,坚果,樱桃炸弹。新增加植物:双重豌豆射手,三重豌豆射手,食人花 ,小喷菇,土豆地雷,倭瓜。
支持的僵尸类型:普通僵尸,棋子僵尸,路障僵尸,铁桶僵尸。新增加读报僵尸。
使用json文件保存关卡信息,设置僵尸出现的时间和位置。
增加每关开始时选择上场植物。
增加除草机。
下面是游戏的截图:
植物卡片选择和种植
如图所示,游戏中可以种植物的方格一共有45个(有5行,每行9列)。
这篇文章要介绍的是:
上方植物卡片栏的实现。
点击植物卡片,鼠标切换为植物图片。
鼠标移动时,判断当前在哪个方格中,并显示半透明的植物作为提示。
代码实现
所有的植物卡片的名称和属性都保存在单独的list中,每个list index都对应一种植物。
比如list index 0 就是太阳花:
card_name_list[0] 是太阳花卡片的名字,用来获取太阳花卡片的图片。
plant_name_list[0] 是太阳花的名字,用来获取太阳花卡片的图片。
plant_sun_list[0] 是种植太阳花需要花费的太阳点数。
plant_frozen_time_list[0] 是太阳花的冷却时间。
植物卡片类
每个植物卡片是一个单独的Card类,用来显示这个植物。
checkMouseClick函数:判断鼠标是否点击到这个卡片;
canClick:判断这个卡片是否能种植(有没有足够的点数,是否还在冷却时间内);
update 函数:通过设置图片的透明度来表示这个卡片是否能选择。
卡片栏类
MenuBar类显示图3中的植物卡片栏:
self.sun_value:当前采集的太阳点数;
self.card_list: 植物卡片的list;
setupCards函数:遍历初始化init函数中传入这个关卡选好的植物卡片list,依次创建Card类,设置每个卡片的显示位置;
checkCardClick函数:检查鼠标是否点击了卡片栏上的某个植物卡片,如果选择了一个可种植的卡片,返回结果。
代码:
鼠标图片切换
setupMouseImage 函数实现鼠标图片切换为选中的植物:
self.mouse_image :根据 plant_name 获取选中的植物图片;
self.mouse_rect:选中植物图片的位置,在drawMouseShow函数中,需要将植物图片的位置设置成当前鼠标的位置;
pg.mouse.set_visible(False):隐藏默认的鼠标显示,这样效果就是鼠标图片切换为选中的植物了。
提示种在哪个方格中
先看下map类,代码在sourcecomponentmap.py 中:
self.map:二维list,用来保存每个方格的状态。每个entry初始化为 0, 表示可以种植物,值为1时表示这个方格已经种了植物。
getMapIndex 函数:传入参数是游戏中的坐标位置(比如当前鼠标的位置),返回该位置在地图的哪个方格中。
getMapGridPos 函数:传入一个方格的index,返回在该方格中种植物的坐标位置。
showPlant 函数:根据传入的坐标位置,判断该位置所在的方格是否能种植物,如果能种,就返回返回在该方格中种植物的坐标位置。
代码在sourcestatelevel.py中:
canSeedPlant 函数:判断当前鼠标位置能否种植物;
setupHintImage 函数:如果当前鼠标位置能种植物,且有选择了一个植物卡片,则设置self.hint_image 显示当前会在哪一个方格中种植物,self.hint_rect 是植物种的坐标位置。
如果你处于想学Python或者正在学习Python,Python的教程不少了吧,但是是最新的吗?
说不定你学了可能是两年前人家就学过的内容,在这小编分享一波2020最新的Python教程。
以上这些教程小编已经为大家打包准备好了,希望对正在学习的你有所帮助!
获取方式,私信小编 “ 资料 ”,即可免费获取哦!
内容来源于网络如有侵权请私信删除
python植物大战僵尸代码写完了怎么运行_植物大战僵尸的代码如何使用python来实现...相关推荐
- 以下选项中不是python对文件的写操作方法的是_以下选项中,不是 Python 对文件的读操作方法的是...
以下选项中,不是 Python 对文件的读操作方法的是 答:readtext 中国大学MOOC: 温度升高,生物大分子容易降解.为防止变性和降解,对于具有活性的蛋白质和酶,提取时一般在0℃-5℃的低温 ...
- python代码写完怎么运行-Python 项目代码写完了,然后怎么打包和发布?
你把你的代码写完了,是不是要给别人使用下,怎么打包你的项目代码呢? 喂,开源么? 接下来小帅b就跟你说说,如何打包你的代码. 就拿我们上次演示的 用 Python 开发一个 「个人计划 todolis ...
- php代码里怎么写html代码_菜鸟青铜变白银!Python 项目代码写完了,然后怎么打包和发布?...
你把你的代码写完了,是不是要给别人使用下,怎么打包你的项目代码呢?喂,开源么?接下来小帅b就跟你说说,如何打包你的代码.就拿我们上次演示的 todo为例,写完代码之后,代码的目录是这样的: 在 tod ...
- python代码写完怎么运行-教你如何编写、保存与运行 Python 程序
第一步 接下来我们将看见如何在 Python 中运行一个传统的"Hello World"程序.Python教程本章将会教你如何编写.保存与运行 Python 程序. 通过 Pyth ...
- ++代码实现 感知机的原理_决策树ID3原理及R语言python代码实现(西瓜书)
决策树ID3原理及R语言python代码实现(西瓜书) 摘要: 决策树是机器学习中一种非常常见的分类与回归方法,可以认为是if-else结构的规则.分类决策树是由节点和有向边组成的树形结构,节点表示特 ...
- python在图片上写倾斜文字_OpenCV文字识别(二):使用Python(直线检测法)对图像进行倾斜校正...
OpenCV 文字识别(一):图像预处理 上一篇的博客中我使用了C++对印刷体汉字进行了预处理,但因为文字识别模型是基于TensorFlow的,C++调用python代码繁杂且容易出错,所以试着用Py ...
- jS代码写在html什么位置,3种JavaScript代码书写位置和注意事项
在网页中编写JavaScript代码时,有3种书写位置,分别是行内式.内嵌式(也称为嵌入式)和外部式(也称为外链式),下面分别进行讲解. 1. 行内式 行内式是指将单行或少量的JavaScript代码 ...
- 喜欢把代码写一行的人_我最喜欢的代码行
喜欢把代码写一行的人 Every developer has their favourite patterns, functions or bits of code. This is mine and ...
- 以下选项中不是python对文件的写操作方法的是_以下选项中不是Python对文件的写操作方法的是:()-智慧树品三国,论领导艺术章节答案...
品三国,论领导艺术:以下选项中不是Python对文件的写操作方法的是:()[单选题] A:准确性原则 B:公平原则 C:完整性原则 D:及时原则 品三国,论领导艺术章节测试答案: 公平原则 更多相关问 ...
- python可以写什么视觉特效_星球大战视觉特效背后的功臣—Python语言
本文主要向大家介绍了星球大战视觉特效背后的功臣-Python语言,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 阔别十年时光,全球瞩目的第七部星球大战电影<原力觉醒> ...
最新文章
- logo语言linux,用 screenfetch 和 linux_logo 显示带有酷炫 Linux 标志的基本硬件信息
- 在不root手机的情况上读取Data目录上的文件
- java on RHEL5
- WebStorm V2017.1版用于Angular2开发的环境设置
- 网站的高性能架构--web前端优化
- 前端相对路径 与后端相对路径的区分
- 【S操作】我的云存储工具选择,供您参考——总结云存储云办公云笔记工具
- 好用的数学公式(持续更新中)
- 实例41:python
- 蓝鲸社区版_部署bkdata服务无法启动问题
- docker-containerd 启动流程分析
- 交返对于高频交易者尤为重要
- 群晖Docker部署Calibre Web打造全功能书库
- 英语体系----词根词缀等----持续补充(词根词缀等,词汇,语法,简单句,长难句,写作)
- 基于STM32的智能抽油烟机系统
- 将视频文件旋转90°的方法
- python问卷星 自动答题_问卷星自动答题神器
- oracle 自增数,ORACLE自增函数,一般函数
- 冯小刚回应质疑:中国没大师 谁都别装!
- 王半仙儿的日记-0004