导语

最近发现很多人对 python 制作小游戏感兴趣,于是花了半天时间做了个塔防小游戏,在这里分享给大家,希望对大家有帮助。

让我们愉快地开始吧~

开发工具

**Python 版本:**3.6.4

相关模块:

pygame 模块;

以及一些 Python 自带的模块。

环境搭建

安装 Python 并添加到环境变量,pip 安装需要的相关模块即可。

先睹为快

在 cmd 窗口运行"Game8.py"文件即可。

效果如下:

原理介绍

游戏规则简介:

玩家通过建造箭塔抵御敌人的进攻。

每隔一段时间,将会有一波敌人从左上角的洞穴中诞生,并冲向右下角的城堡。玩家需要做的,则是通过建造箭塔射杀敌人,避免城堡受到敌人攻击,同时,每当你射杀一个敌人,将获得一定的金钱奖励。

游戏失败:

每有一个敌人冲进城堡,城堡的生命值下降一定的数值,当城堡的生命值为 0 时,则游戏失败。

游戏胜利:

随着时间的推移,敌人的实力会越来越强,数量也会越来越多,所以你是不可能胜利的,哈哈。

游戏界面说明:

T1-T3 代表不同的箭塔类型,不同的箭塔类型具有不同的价格以及能力;

XXX 代表出售箭塔(半价);

Pause 代表暂停游戏;

Quit 代表退出游戏。

玩家通过左键选中箭塔/出售箭塔标识,右键放弃当前选中的内容。鼠标中间箭用于控制箭塔射击的方向,否则箭塔将自由射击。

选中箭塔后,将其移动到你认为合适的位置,点击鼠标左键即可在该位置建造一个箭塔(当然前提是你账户余额买得起箭塔,不然只能打怪攒钱了);选中出售箭塔后,将出售箭塔标识放在已建造的箭塔上,点击鼠标左键,即可出售选中的箭塔。

逐步实现:

Step1:明确游戏主逻辑

游戏主逻辑应当是这样的

代码描述如下:

Step2:实现游戏开始界面

这里的要点在于当检测到鼠标移动到按钮上时,执行按钮变色操作,检测到鼠标点击按钮位置时,跳出游戏开始界面。主代码如下:

Step3:实现游戏选择界面

要点同步骤二,主代如下:

游戏难度定义在一个.json 文件夹中,例如:

Step4:实现游戏界面

首先,将地图设计在.map 文件中,不同的数字代表不同的地图元素,例如:

这样就可以很方便地导入不同的地图:

其次就是画工具栏:

如此一来,游戏界面的雏形就出来了。接下来就是每隔一段时间产生一批敌人:

通过按键检测和定义一些函数来实现用户与游戏的交互,例如造塔等操作。其中按键检测的代码如下:

操作函数的定义如下:

当然,当检测到暂停按钮被按下时,你需要将游戏切入暂停界面:

其中按键闪烁的实现主要依靠每隔一小段时间显示一次按键实现,其它要点同步骤二。

最后,就是让箭塔可以不停地射箭并且通过碰撞检测来判断箭是否射中了敌人(射中的话敌人生命值会下降,下降到 0 时敌人才会死掉),画出游戏界面中还存在着的所有元素:

当然,如果城堡死掉了,那么游戏也就结束了:

Step5:实现结束界面

要点同步骤二,主代码如下:

基于Python实现制作的塔防游戏相关推荐

  1. (译)如何使用cocos2d制作一个塔防游戏:引子

    原文链接地址:http://www.iphonegametutorials.com/2011/04/11/cocos2d-game-tutorial-how-to-build-a-tower-defe ...

  2. 如何制作一个塔防游戏 Cocos2d x 2 0 4

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本文实践 ...

  3. 基于QT多关卡的塔防游戏

    基于QT多关卡的塔防游戏 基于QT多关卡的塔防游戏 参考模板 核心实现思想 运行图片 代码 基于QT多关卡的塔防游戏 多关卡多怪兽,多防御塔与多子弹类型,对于界面无美化,主要实现其功能,Boss尺寸是 ...

  4. 如何制作一个塔防游戏 Cocos2d-x 3.0alpha0

    本文实践自 Pablo Ruiz 的文章<How To Make a Tower Defense Game>,文中使用Cocos2D,我在这里使用Cocos2d-x 3.0alpha0进行 ...

  5. 如何制作一个塔防游戏 Cocos2d-x 2.0.4

    本文实践自 Pablo Ruiz 的文章<How To Make a Tower Defense Game>,文中使用Cocos2D,我在这里使用Cocos2D-x 2.0.4进行学习和移 ...

  6. (译)如何使用cocos2d制作一个塔防游戏:第三部分

    原文链接地址:http://www.iphonegametutorials.com/2011/04/19/cocos2d-game-tutorial-%E2%80%93-how-to-build-a- ...

  7. 如何在unity中制作塔防游戏

       塔防游戏非常流行,毫无疑问--没有什么比看着自己的防御消灭讨厌的侵略者更让人满足!在这两部分教程中,用unity来制作一个塔防游戏! 将会学习怎样...... 创建一波敌人 让它们跟随线路点 ...

  8. 微信塔防小游戏开发教程,唤境引擎制作塔防游戏分享

    今天带来的是塔防游戏制作攻略! 点击这里来下载工程文件, 点击这里可以下载工程中所用的素材哦~ 预览状态时敌人会从四个生成点随机生成,并且会自动寻路绕过黑色墙体走向红色终点.点击黑色墙体可以创建炮塔, ...

  9. 【Unity小游戏】游戏开发案例,轻松打造一款塔防游戏!(下)

    欢迎来到如何在 Unity 中创建塔防游戏的第二部分.你正在Unity中制作一个塔防游戏,在第一部分结束时,你可以放置和升级怪物.你还有一个敌人攻击饼干. 然而,敌人不知道该面对哪条路!此外,这是攻击 ...

最新文章

  1. javaBeen的四个作用范围
  2. 最近的特别问题(1)
  3. 补码为什么要取反加1?
  4. SpringBoot通过yml和xml文件配置日志输出
  5. c语言程序编译成功运行失败,为什么这个程序编译成功但运行失败?
  6. SAP License:BCS进阶第三篇-BCS合并过程(一)
  7. ATT全球网络运营中心GNOC
  8. mysql C where语句_MYSQL WHERE语句优化
  9. CCF 201809-2 买菜
  10. 十大经典排序算法总结
  11. 电路设计中发光二极管用作指示灯时的限流电阻如何选择
  12. 推荐好用的输入法 QQ输入法 及设置特定词组的输入方式
  13. 双非计算机研究生要不要读,“双非”大学研究生,到底值不值得读?
  14. docker的搭建和简单应用
  15. 8255A的工作方式
  16. Spring-初识Spring框架-IOC控制反转(DI依赖注入)
  17. uniapp map 地图
  18. 大数据薪水大概多少_大数据各岗位薪资收入水平多少?出路在哪里?
  19. 利用大数据挖掘创新市场监管新方式
  20. NYOJ 628--小媛在努力【水题】

热门文章

  1. Vue文件上传、下载
  2. 【How2Pwn】DreamHack x64下的ROP问题
  3. 10-1-2 数据结构与算法高级(下)
  4. IDEA解决Python项目如何numpy等安装包的问题
  5. 做BI的痛,你懂吗?
  6. 计算机组用户名跟密码忘了,访问局域网工作组的电脑需要用户名和密码怎么办...
  7. 什么是iu组装服务器,华硕迷你IU机架服务器RS100-E4/PI2全新上市
  8. 机器学习中VC界和VC维草稿笔记
  9. python职业发展规划-python职业发展
  10. Spring Cloud- Ribbon设计原理