发布于2021-07-25 06:00 阅读(544) 评论(0) 点赞(7) 收藏(5)
最近发现很多人对python制作小游戏感兴趣,于是花了半天时间做了个塔防小游戏,在这里分享给大家,希望对大家有帮助。
让我们愉快地开始吧~
ps: 封面和效果均为参考图,侵权删
Python版本:3.6.4
相关模块:
pygame模块;
以及一些Python自带的模块。
安装Python并添加到环境变量,pip安装需要的相关模块即可。
原理介绍
游戏规则简介:
玩家通过建造箭塔抵御敌人的进攻。
每隔一段时间,将会有一波敌人从左上角的洞穴中诞生,并冲向右下角的城堡。玩家需要做的,则是通过建造箭塔射杀敌人,避免城堡受到敌人攻击,同时,每当你射杀一个敌人,将获得一定的金钱奖励。
游戏失败:
每有一个敌人冲进城堡,城堡的生命值下降一定的数值,当城堡的生命值为0时,则游戏失败。
游戏胜利:
随着时间的推移,敌人的实力会越来越强,数量也会越来越多,所以你是不可能胜利的,哈哈。
游戏界面说明:
T1-T3代表不同的箭塔类型,不同的箭塔类型具有不同的价格以及能力;
XXX代表出售箭塔(半价);
Pause代表暂停游戏;
Quit代表退出游戏。
玩家通过左键选中箭塔/出售箭塔标识,右键放弃当前选中的内容。鼠标中间箭用于控制箭塔射击的方向,否则箭塔将自由射击。
选中箭塔后,将其移动到你认为合适的位置,点击鼠标左键即可在该位置建造一个箭塔(当然前提是你账户余额买得起箭塔,不然只能打怪攒钱了);选中出售箭塔后,将出售箭塔标识放在已建造的箭塔上,点击鼠标左键,即可出售选中的箭塔。
逐步实现:
Step1:明确游戏主逻辑
游戏主逻辑应当是这样的:
代码描述如下:
Step2:实现游戏开始界面
这里的要点在于当检测到鼠标移动到按钮上时,执行按钮变色操作,检测到鼠标点击按钮位置时,跳出游戏开始界面。主代码如下:
Step3:实现游戏选择界面
要点同步骤二,主代码如下:
游戏难度定义在一个.json文件夹中,例如:
Step4:实现游戏界面
首先,将地图设计在.map文件中,不同的数字代表不同的地图元素,例如:
这样就可以很方便地导入不同的地图:
其次就是画工具栏:
如此一来,游戏界面的雏形就出来了。接下来就是每隔一段时间产生一批敌人:
通过按键检测和定义一些函数来实现用户与游戏的交互,例如造塔等操作。其中按键检测的代码如下:
操作函数的定义如下:
当然,当检测到暂停按钮被按下时,你需要将游戏切入暂停界面:
其中按键闪烁的实现主要依靠每隔一小段时间显示一次按键实现,其它要点同步骤二。
最后,就是让箭塔可以不停地射箭并且通过碰撞检测来判断箭是否射中了敌人(射中的话敌人生命值会下降,下降到0时敌人才会死掉),画出游戏界面中还存在着的所有元素:
当然,如果城堡死掉了,那么游戏也就结束了:
Step5:实现结束界面
要点同步骤二,主代码如下:
文章到这里就结束了,感谢你的观看,Python24个小游戏系列,下篇文章分享接水果和金币的小游戏
为了感谢读者们,我想把我最近收藏的一些编程干货分享给大家,回馈每一个读者,希望能帮到你们。
干货主要有:
① 2000多本Python电子书(主流和经典的书籍应该都有了)
② Python标准库资料(最全中文版)
③ 项目源码(四五十个有趣且经典的练手项目及源码)
④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)
⑤ Python学习路线图(告别不入流的学习)
⑥ 两天的Python爬虫训练营直播权限
All done~分享不易记得给波点赞+评论支持下~详见个人简介或者私信获取完整源代码。。
原文链接:https://blog.csdn.net/weixin_43649691/article/details/118997672
作者:听见那声音
链接:http://www.pythonpdf.com/blog/article/413/ce3c84fb266be2aef3fc/
来源:编程知识网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!