百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

只用10分钟,手把手教你学会使用Python开发植物大战僵尸游戏

off999 2024-12-03 17:17 56 浏览 0 评论

外部库工具:Pygame;开发工具:Pycharm

图片素材:地图、豌豆射手、豌豆、僵尸、向日葵等

前言

Python是一门面向对象编程的语言,熟练掌握面向对象编程的思路需要在不断的实战操作中加深理解。前面给大家介绍了《图书管理系统》的开发案例,大家应该在脑海中已经有一个基本的面向对象的编程模型,今天,我将以植物大战僵尸这个游戏为例,更加全面深入的介绍面向对象编程的应用。

模块的导入以及初始化

本例使用到Pygame模块以及random模块,首先初始化图片的路径以及游戏窗口的大小,以变量的方式进行保存,方便后续进行调用。

类的定义

(1)定义地图类:

地图是由两个不同颜色的图片拼接起来,首先需要初始化这两张图片,三个属性:一个是打开路径,一个是位置坐标,另外一个是是否可以种植植物;然后再定义加载地图的方法。

(2)定义植物类:

首先初始化植物,是否是存活的,然后定义植物的加载方法。植物加载到地图时,指定了加载的范围。

(3)定义向日葵类:

首先初始化向日葵的几个属性:

  • 图片的路径
  • 区域坐标
  • 消耗的金钱
  • 生命值

定义向日葵生产阳光的方法,通过计时器判断,每隔多久生产多少阳光;然后定义方法,将向日葵加载到地图中。

(4)定义豌豆射手类:

首先初始化豌豆射手的几个属性:

  • 图片的路径
  • 区域坐标
  • 消耗的金钱
  • 生命值

然后定义豌豆射击的方法,是否该射击,射击速度,是否活着,子弹的来源等等

(5)定义豌豆子弹类:

首先初始化豌豆子弹的几个属性:

  • 图片的路径
  • 区域坐标
  • 伤害值
  • 移动速度

然后定义子弹的活动规则。比如移动方向,何时消失,移动速度等

接着定义子弹与僵尸的碰撞判断:子弹碰撞后消失,僵尸生命值降低

最后,定义如何闯关

(6)定义僵尸类:

首先初始化豌豆子弹的几个属性:

  • 图片的路径
  • 区域坐标
  • 伤害值
  • 移动速度
  • 死亡
  • 停顿

接着定义僵尸的移动规则,然后判断僵尸与植物之间是否碰撞,如果碰撞则攻击植物

定义僵尸攻击植物的方法,根据僵尸的伤害值以及植物的生命值,不断更新植物的存活状态

主程序

(1)初始化:

对地图、豌豆、子弹等列表进行初始化,将游戏窗口加载出来。

在窗口中添加游戏说明,以文本的形式体现。

(2)加载地图:

将前面加载的图片按照既定的规则形成地图,并将地图加载到窗口中

(3)豌豆射手的发射逻辑:

金钱数量足够的情况下,可以种植豌豆射手;豌豆射手如果存活们就可以调用射击方法发射豌豆子弹;如果豌豆射手被击杀,就从地图上消失。

(4)加载子弹:

直接调用子弹的移动、子弹与僵尸碰撞方法即可,如果子弹碰撞则消失。


(5)事件处理:

因为游戏的操作是需要通过键盘输入事件,因此需要对事件的处理进行定义,比如:左键种植植物,右键种植向日葵等。

(6)僵尸的新增规则:

僵尸被消灭后,根据不同的难度,会产生不同数量的僵尸。新增的僵尸直接调用加载以及移动方法。

(7)启动游戏:

启动游戏,将所有动作以及画面循环显示出来,形成游戏动画的效果

总结

本案例是一个简化版的植物大战僵尸游戏,是一个面向对象编程综合性很强的例子。为了让大家清晰的感受到面向对象的思想,我把程序的结构分得很细,争取让所有人都能看明白。希望通过这个实例,大家能够对面向对象编程更上一层楼。

针对上面的案例,如有任何疑问,欢迎在评论区留言或者私信小编,小编会认认真真为大家解答哦!

需要“完整程序”的朋友,欢迎“关注”小编,小编会将“源码”发给大家,谢谢!

如果有正在入门或准备入门的朋友,可以看看小编的专栏哦!


相关推荐

win10激活注意事项(win10激活过程要多久)

1.是:KMS激活、数字许可证激活、产品密钥激活。2.KMS激活是通过KeyManagementService服务器来激活系统,它需要连接到企业内部的KMS服务器进行激活,适用于企业用户。数字...

华硕官网正品查询(华硕官网防伪查询)

登陆网站www.asus.com.cn进入网站,点击防伪查询,输入16位防伪数码,即可辨别真伪。华硕显卡sn码官网查1.打开浏览器进入华硕官方网站。2.在页面下方找到“华硕产品服务政策”类目,点击进入...

数据网络打开了连不上网怎么回事

1、如您无法上网请尝试关机开机重启;请检查是否已达本月流量封顶阀值;请检查手机设置移动数据是否已打开;手机设置流动数据选项APN及名称是否设置为3gnet。2、如仍无法上网,建议您可通过以下方式进行排...

synopsys软件(synthia软件)

PSIM是趋向于电力电子领域以及电机控制领域的仿真应用包软件。PSIM具有仿真高速、用户界面友好、波形解析等功能,为电力电子电路的解析、控制系统设计、电机驱动研究等有效提供强有力的仿真环境。本...

cmd定时关机命令设置时间(cmd定时关机怎么设置)

在WindowsXP下打开C盘,在Windows下选system32中有一个shutdown的程序,可以复制到其它系统中。“开始”--->运行--->(在输入shutdown的命令)...

笔记本电脑开机就蓝屏(笔记本电脑开机就蓝屏了)

USB:  假如计算机处于开机的状态时USB接口上有U盘等存储设备,那么计算机就很有可能出现蓝屏现象,而且无法正常开机。因此,当计算机在开机时出现蓝屏状态时,我们首先要检查一下USB接口是否有接入U...

重置无线路由器(重置无线路由器密码)

1、将网线—路由器—电脑之间的线路连接好,启动电脑和路由器设备;2、启动设备后,打开浏览器,在地址栏中输入192.168.1.1进入无线路由器设置界面。(如进不了请翻看路由器底部铭牌或者是路由器使用说...

电脑有网却打不开网页是怎么回事
  • 电脑有网却打不开网页是怎么回事
  • 电脑有网却打不开网页是怎么回事
  • 电脑有网却打不开网页是怎么回事
  • 电脑有网却打不开网页是怎么回事
win7系统整个界面变大(win7系统整个界面变大怎么办)

解决方法:1、首先查看当前系统的桌面图标情况,发现桌面图标突然变成了超大号的了。非常难看。2、右键点击桌面空白处,分别选择“查看”,“中等图标”。3、现在再查看桌面图标,发现已经恢复了。4、还有一种方...

电脑设置一切正常就是没声音

在电脑重置后没有声音的情况下,可能有以下几种可能的原因和解决方法:1.音频驱动程序问题:电脑重置后,可能需要重新安装或更新音频驱动程序。你可以尝试重新安装声卡驱动程序,可以从电脑或声卡制造商的官方网...

eset nod32官网(esetnod32官网)

从系统性能上来说,卡巴斯基对系统的影响略大于ESETNOD32。具体表现就是,系统反应有所变慢,硬盘读写变频繁。从防护角度上来说的话……卡巴斯基的防护组件很多(商业版,免费版不在考虑范围之内),全开...

如何安装ie浏览器(怎么安装ie浏览器 win10)

方法一:一般系统自带的IE不能卸载和自己安装,如果是系统自带的可以还原系统或重装,也可用软件覆盖安装IE试试。使用系统自带的系统还原的方法:系统自带的系统还原:“开始”/“程序”/“附件”/“系统工具...

一键恢复桌面图标win7(一键恢复桌面图标win10)

Win7桌面图标设置:  1.在桌面上点击鼠标右键点击(其中查看菜单的子项是用来修改桌面图标的大小,如需修改图标大小只需在此菜单设置即可),选择“个性化”。2.在个性化设置窗口,单击左侧的更改桌面图...

win7格式化电脑怎么弄

win7旧电脑想要格式化干净,具体方法如下:WIN7电脑利用鼠标点击我的电脑,找到C盘,鼠标右键选择格式化,这样就可以格式化,干干净净在Windows7中,您可以通过以下步骤来格式化计算机,而无需...

蓝牙适配器驱动安装教程(蓝牙适配器的驱动怎么安装)

1可以在官网或第三方软件平台下载相关驱动程序。2在安装驱动前,需要先确认你的蓝牙适配器的类型和型号,然后去对应的官网或者第三方软件平台下载最新的驱动。3安装驱动程序时需要注意,不能插拔蓝牙适配器...

取消回复欢迎 发表评论: