目录

开发工具

讲解部分

一、前言

二、资源准备

三、代码文件

四、整体思路

五、尾声


开发工具

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. wps临时文件不自动删除_win10系统下wps残留文件无法删除如何解决
  2. Selenium IDE使用
  3. python打开excel的函数-Python读取excel文件中带公式的值的实现
  4. [树状数组] Inverse
  5. 简易的实现对象内存池
  6. 如何在Android中使用OpenCV
  7. InfoPath: Passing Command Line parameters to a new form
  8. 学习笔记===《用户体验要素——以用户为中心的产品设计》
  9. php 同义词词库,同义词搜索功能 - 权威指南 - 迅搜(xunsearch) - 开源免费中文全文搜索引擎...
  10. linux检测不到声卡设备,解决 Deepin V20、Ubuntu 20.04、Linux Mint 20 声卡无法识别导致的没有声音...
  11. 从What到How,大数据实战攻略秘笈
  12. java爬虫爬取豆瓣电影_小爬虫之爬取豆瓣电影排行榜
  13. 如何合并多个excel表
  14. 大部分人都容易焦虑,那么应该如何对待焦虑呢?
  15. 医疗器械小程序或手机APP软件开发方案
  16. Pandas详解十之Dropna滤除缺失数据
  17. 设置InternetConnect的httpRequest连接数
  18. 长尾关键词优化排名-文章页优化决定效果!
  19. Python入门自学进阶——11-协程
  20. gtest Test_F 和Test 区别

热门文章

  1. docker for windows下载和安装-Windows10版本
  2. GIS地图学习笔记七之安装ArcGIS_Server、ArcGIS_Desktop和LicenseManager
  3. 心理学:为什么聪明人更容易患有抑郁症
  4. 【BZOJ2246】[SDOI2011]迷宫探险【搜索】【概率DP】
  5. 【BZOJ2246】【codevs2135】迷宫探险,概率DP+记忆化搜索+状态压缩+运气
  6. 树莓派与深度学习:环境配置及镜像分享
  7. mjpg-streamer移植记录
  8. UWA学堂上新|虚幻引擎源码解析——基础容器篇
  9. ELK 安装Beat
  10. 利用OBS输出计时器定时录制功能录制视频