基于Python制作塔防游戏

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

本文包含相关资料包-----> 点击直达获取<-------

Python 制作小游戏(八)

导语

最近发现很多人对 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:实现结束界面

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

更多

代码截止 2018-08-29 测试无误。

本系列文章相关文件中均提供了打包好的版本,无需环境搭建即可运行玩耍~

游戏写的比较赶,懒得动脑子,于是就很单纯地不断加代码来实现每个功能了,所以看起来代码量很大,事实上很多功能都是重复或者类似的。有兴趣的朋友可以在此基础上优化,进一步完善游戏。

就这样吧,代码写完有点飘,所以文章写起来也飘飘的,对新手可能不太友好。不过源代码重要的地方我都详细注释了,不懂的地方可以参考源码的注释。

参考文献

  • 网页游戏平台的管理与设计(哈尔滨师范大学·苏润泽)
  • 基于B/S模式边防作战值班管理系统的设计与实现(昆明理工大学·杨彬彬)
  • 基于B/S模式边防作战值班管理系统的设计与实现(昆明理工大学·杨彬彬)
  • 基于嵌入式桌面游戏运营平台的研发(福建师范大学·陈月梅)
  • 基于云桌面技术的网络攻防教学演练系统研究与实现(南京理工大学·谢海睿)
  • 面向高职信息技术教育的严肃游戏设计与实施(大连理工大学·王晓姝)
  • 基于B/S架构的网络层攻击平台设计与实现(西安电子科技大学·杨睿)
  • 在线旅游管理信息系统的设计与实现(电子科技大学·任缘)
  • 基于渗透测试的网络游戏平台安全性及保障的研究与分析(云南大学·闻腾飞)
  • 网页游戏平台的管理与设计(哈尔滨师范大学·苏润泽)
  • 网络游戏虚拟物品交易系统设计与实现(吉林大学·李云峰)
  • 基于B/S架构的酷跑社区系统的设计与实现(内蒙古大学·张晓乐)
  • 基于Web的信息发布与信息交流平台的设计与实现(吉林大学·许昭霞)
  • 基于WEB的爬虫系统的设计与实现(西安电子科技大学·卢哲辉)
  • 基于网络爬虫的论坛数据分析系统的设计与实现(华中科技大学·黎曦)

本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:代码向导 ,原文地址:https://bishedaima.com/yuanma/36047.html

相关推荐

  • 基于JSP和SQL的CD销售管理系统

    基于JSP和SQL的CD销售管理系统 摘要 二十一世纪是一个集数字化,网络化,信息化的,以网络为核心的社会,中国的网民充分领略到“畅游天地间,网络无极限” 所带来的畅快
    2024年05月14日
    2 1 2
  • 基于Java+Swing的俄罗斯方块小游戏课程设计实现源码

    基于Java+Swing的俄罗斯方块小游戏课程设计实现源码 俄罗斯方块作为经典的益智游戏,一直备受玩家喜爱,随着计算机技术的发展,人们对于游戏的实现方式也有了更高的要求
    2024年05月07日
    5 1 1
  • 高校教务系统之Python

    高校教务系统 一,需求分析 1,1 业务场景 高校教务系统用户分为三种:管理员,教师,学生, 这也是根据现实大学生中的教务系统的情况,以及自己的一些想象
    2024年05月14日
    4 1 1
  • 使用SSM框架的购物网站系统

    1 前言 本次课程设计旨在考察学生对工程的规划与设计能力,本次课程设计中,我选择的题目是web应用,目的在于在对JAVAEE的兴趣的前提下,增加自己对WEB应用开发的项目经验
    2024年05月14日
    9 1 3
  • 基于SpringBoot框架的旅游景点导游平台

    这是一套采用Java编程语言,基于SpringBoot框架构建的旅游导览系统源代码,系统采用了现代化的开发工具Idea或Eclipse,并结合Vue技术进行前端呈现,该旅游导览平台适用于毕业设计或课程实践项目
    2024年05月23日
    5 1 3
  • SSM实现值班管理系统排班管理系统

    值班管理系统是现代组织中不可或缺的一部分,其对于人力资源的合理调配和工作效率的提升至关重要,随着信息技术的迅速发展,基于Spring,SpringMVC和MyBatis的值班管理系统(SSM实现值班管理系统)逐渐成为研究和应用的热点
    2024年05月07日
    9 1 4
  • 基于spring boot实现的ERp仓库管理系统

    1 系统概述 基于SpringBoot框架和SaaS模式,非常好用的ERP软件,目前专注进销存+财务功能,主要模块有零售管理,采购管理,销售管理,仓库管理,财务管理
    2024年05月14日
    7 1 3
  • vue 购物 WebApp---蘑菇购

    vue 购物 WebApp---蘑菇购 项目概述 简介 项目名 蘑菇购 ,与一般购物 WebApp 类似,包括首页
    2024年05月14日
    9 1 1
  • SpringDataJPA

    (一)J2EE 项目系列(三)--Spring Data JPA+Spring+SpringMVC+Maven 快速开发(1)项目架构 (二)J2EE 项目系列(三)--Spring Data JPA+Spring+SpringMVC+Maven 快速开发(2)多个第三方服务端接入之云旺 IM (三)Java-解决实现 JPA 的 hibernate 自动建表的编码问题 (四)WEB 后台--基于 Token 的 Web 后台登录认证机制(并讲解其他认证机制以及 cookie 和 session 机制) (一)J2EE 项目系列(三)--Spring Data JPA+Spring+SpringMVC+Maven 快速开发(1)项目架构 文章结构:(1)项目环境搭建;(2)简单业务逻辑测试框架;(3)项目配置注意点;(4)快速开发上手技巧; 一
    2024年05月14日
    3 1 1
  • 基于SpringBoot框架的酒店管理系统

    这是一份采用Java语言编写的Hotel Management System的源代码,基于流行的SpringBoot框架构建,项目集成了一流的Vue技术,开发工具为Idea或Eclipse
    2024年05月23日
    6 1 2

发表回复

登录后才能评论