python植物大战僵尸(1)

欢迎加入我们卧虎藏龙的python讨论qq群:729683466

导 语 ●

之前一直发一些简单的小游戏

百十行代码的那种

估计大家已经了解的一清二楚了

现在可以讲一些比较复杂的游戏

今天就带领大家寻找一下童年记忆

《植物大战僵尸》

代码及相关资源获取

1:关注“python趣味爱好者”公众号,回复“game43 ”获取源代码

效果演示

ss

python植物大战僵尸(1)_第1张图片

往期精选

这是以前写的一些python塔防游戏,大家可以回顾一下。

python塔防之“双层箭塔”(一)

python塔防之------“红精灵来袭”

 

开发工具

python3.6.4

第三方库:pygame,json

讲解部分

一:前言

很久以前公众号发过一些比较复杂的游戏代码,比如大概一年前,发过一个塔防游戏,这个塔防游戏是我一年前写的,比较粗糙。之前本来是想以后慢慢补充的。结果后来没人提醒我,挖的这个坑直接忘记了,再重新看这个代码的时候,已经过了一年了。啥都不记得了,更别提修改了。不过想起了之前发的一个植物大战僵尸,这个代码更加复杂,可是当时只用了一期来介绍,显然不太合适,现在准备多做几期植物大战僵尸的代码讲解,让大家更好的理解比较复杂的游戏。

二:资源准备

植物大战僵尸和以前的小游戏不一样,这是需要很多图片的,由于图片太多了且种类丰富,我们专门建立一个文件夹,讲这些图片分门别类的存放好,文件夹的名称就是resources,其中有一个文件夹graphics

python植物大战僵尸(1)_第2张图片

这里面有子弹,卡片,植物,僵尸,地图等种种图片,我们点开植物Plants看一看。

python植物大战僵尸(1)_第3张图片

python植物大战僵尸(1)_第4张图片

这里面是各种植物的图片,如果想要增加新的图片种类,可以在这里添加即可。

当然,并不是所有的植物都是一个文件夹,然后文件夹里面所有的图片都一样,有些时候,一个植物完成一次攻击可以分成几个动作,比如说“倭瓜”,这样就需要好几个不同动作的图片。程序运行的时候将这几个图片依次放出来,这样就形成了一次完整的攻击动作。

python植物大战僵尸(1)_第5张图片

同理,一个僵尸的行走动作也可以分成很多步骤,程序运行的时候,这些动作依次展示出来即可。

python植物大战僵尸(1)_第6张图片

三:代码文件

这个游戏很复杂,需要很多个py文件,于是我们建立了一个
source文件夹,专门用于存储这些py文件。这个文件夹下由一个main.py文件,一个constants.py文件,里面存储的是一些比较重要的常量,以及一个tool文件,是用来控制程序运行的。之后的推送里,我们会依次介绍这些文件的作用。

在其它的文件中,也放了一些py文件。比如在component文件中,放置了植物的类,僵尸的类,以及地图的类。

四:整体思路

其实所有的游戏在游戏思路上都差不多,核心是一个while true循环,保证游戏可以一直玩下去,然后中间有一些跳出循环的代码块,比如说,如果所有的僵尸都被打死了,那么跳出循环,游戏结束。或者说,僵尸进入了你的房间,这种情况下也是游戏结束。在循环中,通过设置游戏屏幕帧率变化,可以让静态的图片变成动态的视频画面。也就是,每一次循环中,各种游戏元素按照各自的特点移动,僵尸肯定是按照各自的速度向左前进,一个僵尸的行走动作可以拆分为好几个图片,然后依次放出这些图片。这就构成了僵尸的移动。

同理,植物发起攻击的过程中,也会发射子弹,子弹也要按照各自的速度移动,有一些攻击方式比较复杂的植物,比如地刺,倭瓜,也要拆分为个攻击步骤。

而这些,需要通过设置不同的植物和僵尸类来表示,之后我们会一节节讲出来。

五:尾声

在之后的推送中,我们会将这个代码拆开揉碎了给大家讲,会推出很多期,直到代码讲完。下一期要讲的是各种植物和僵尸的定义。

感谢大家观看

有钱的老板可打赏一下小编哦

扫描二维码

关注我们

QQ群:729683466

◰  

参考来源


GitHub

你可能感兴趣的:(游戏,java,游戏开发,编程语言,github)