目录

开发工具

讲解部分

一、前言

二、资源准备

三、代码文件

四、整体思路

五、尾声


开发工具

python3.6.4

第三方库:pygame,json

讲解部分

一、前言

之前发过一些比较复杂的游戏代码,是一个塔防游戏,比较粗糙。之前本来是想以后慢慢补充的。结果后来没人提醒我,挖的这个坑直接忘记了,再重新看这个代码的时候,已经过了蛮久了。啥都不记得了,更别提修改了。不过想起了之前发的一个植物大战僵尸,这个代码更加复杂,可能会多准备几期做植物大战僵尸的代码讲解,让大家更好的理解比较复杂的游戏。

二、资源准备

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

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

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

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

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

三、代码文件

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

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

四、整体思路

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

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

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

五、尾声

感兴趣的朋友可以先点个收藏+关注,之后有代码的部分也可以分享给大家,我这里也整理了一套Python学习路线跟资料,比较适合新手,戳下面名片找小助理领取

python入门小项目 | 用Python复刻了植物大战僵尸相关推荐

  1. Python入门小项目-摇骰子小游戏

    大家平时微信上没少玩骰子吧,骰子比大小是我们经常玩的一个小游戏也十分的简单,就是不同玩家骰子点数比较大小.我们大学宿舍的时候,就经常比大小决定谁下去拿外卖,那时候费非常想让自己是最大的数,现在看来,以 ...

  2. python入门小项目-新手学Python必看的几个练手小项目,轻松不枯燥哦!

    Python是一种面向对象的解释型编程语言,源代码与解释器CPython遵守GPL协议,Python语法简洁清晰. 语法简洁清晰,那么我们用少量的Python代码能做哪些有趣的东西?温馨提示:文末必看 ...

  3. Python入门小项目

    最近在学习Python,感觉光看书不够用,没法掌握Python.因此,在网上搜了一些Python练手小项目,进一步学习Python. 目前正在学习Wayne Shi提供的24个Python小项目.   ...

  4. python入门小项目 | 开发一个《小猫抓鱼》小游戏

    小猫抓鱼 开发工具 讲解部分 一.游戏原理 二.游戏逻辑 三.重点代码实现 开发工具 python3.6.4 第三方库: pygame,random 讲解部分 一.游戏原理 游戏原理很简单,和接水果的 ...

  5. python入门小项目-判断闰年的两种方法(含代码示例)

    每当问到今年是不是闰年都先要思考一下再给出回答,一个年份的判断还好,多个问起来就得想一会了,虽然在网上也可以查,但在这里,还是和大家分享下用哪个Python怎么去帮我们快速做判断. 我们先搞清楚什么是 ...

  6. Python入门小项目-计算阶乘n的三种方法+常见练习(含代码示例)

    今天的文章主要给各位整理了Python常见的集中计算练习,这些也是作为初学者必会的联系项目了,代码分享出来,需要的朋友们可以看下~ 一.计算阶乘n! 整数的阶乘(英语:factorial)是所有小于及 ...

  7. 三个Python入门小项目

    一.经典冒泡排序算法: 1.冒泡排序:小的排前面,大的排后面. 2.排序:最终使得数组中的这几个数字按照从小到大的顺序排序. 3.冒泡排序的概念,关系到下来怎么写程序.(重要概念)相邻的两个元素,依次 ...

  8. python?java?都能制作自己的植物大战僵尸!

    提到植物大战僵尸相信大部分读者都不陌生,可以说是塔防类游戏的鼻祖. 简单介绍一下这款Python 语言开发的植物大战僵尸的游戏. 项目的编译环境 Python3.7及以上版本,直接去python官网下 ...

  9. 简单Python入门小程序

    简单Python入门小程序 简单Python入门小程序 1.猜拳击小游戏,三次后结束.石头-0,剪刀-1,布-2,如果输入错误则提示错误输入. import random i=0 while 1:pe ...

最新文章

  1. python画误差棒/带
  2. B.Sport Mafia
  3. 满二叉树各种节点数目的计算
  4. 直接拿来用!最火的Android开源项目(完结篇)
  5. Linux内核中读写文件数据的方法
  6. 中国信通院专家当选ITU-T分布式账本焦点组副主席
  7. 【j2ee spring】30、巴巴荆楚网-综合hibernate4+spring4(5)分页
  8. recovery升级是显示进度条_注意!税控系统软件升级了,还有疑问看这里!
  9. Spring mvc4 + ActiveMQ 整合
  10. SQL性能优化常见措施(Lock wait timeout exceeded)
  11. fps200多正常不_AMD处理器扬眉吐气,腾讯游戏不再A黑!LOL最高FPS459平均200多
  12. 洛谷 P2383 狗哥玩木棒
  13. R 语言的安装(详细教程)
  14. 单片机中断实验 EX0
  15. Windows10 开机跳过密码验证
  16. 图片去水印的原理_图片去水印方法 图片如何去掉水印
  17. 贵港职称计算机考试网,贵港工程师职称等级时间
  18. 周易六十四卦——风雷益卦
  19. 钻石小鸟:年轻兄妹的百年品牌梦
  20. php 中margin-top,margin-top是什么意思-css编程词典-php中文网

热门文章

  1. 硅烷PEG马来酰亚胺,Silane-PEG-Mal,马来酰亚胺聚乙二醇硅烷
  2. Shuffle 操作
  3. 大学生计算机相关专业有什么血泪建议吗?
  4. wangEditor编辑器使用
  5. 解决AttributeError: ‘NoneType‘ object has no attribute ‘val‘ if left.val!=right.val:Line 17 问题
  6. 关于fedora35下载速度慢的办法
  7. Uber系统架构设计
  8. 申请免费SSL证书的网站或工具
  9. npm命令行强制删除node_modules
  10. 如何制作相册?Mac电脑如何对照片进行管理分类?