用python做一个小游戏代码,用python制作一个小游戏

news/2025/2/12 8:55:10/

大家好,小编来为大家解答以下问题,如何用python编写一个简单的小游戏,用python做一个小游戏代码,今天让我们一起来看看吧!

今天呢,给大家展示一下Python有趣的小地方,展示给大家看看,我做的小游戏,是否有大家小时候的回忆呢。下面就废话不多说了,给大家展示一遍!感兴趣的小伙伴不懂也没事,可以下载一个PyCharm,跟着我的图片代码一起敲呀!

首先呢我们选择好开发工具 Python版本:3.6.4,相关的模板选择pygame模板,以及一些Python自带的模块。环境搭建也很简单,只需要安装Python并添加到环境变量,pip安装需要的相关模板即可。

逐步实现:

Step1:定义游戏精灵类

由于游戏涉及到碰撞测试,所以我们先来定义一些游戏精灵类,包括推箱子的人、箱子、墙和目标位置指示标记。

首先我们来定义一下推箱子的人这个精灵类:

他需要拥有可以移动的能力,这里设置了一个模拟移动的选择,是为了通过模拟移动判断它是否可以上、下、左、右移动。因为地图上的其他东西性质类型,所以我们把它们定义成同一个精灵类(其实性质都类似,但是感觉还是有必要区分一下人和物的):

其中箱子有用可以移动的能力,其它则不能移动。模拟移动选择的功能与之前类似。

Step2:定义游戏地图类

这里我们定义用一个游戏地图类,目的是用该类来创建任意的游戏地图。因此,该类应当可以增加并保存游戏元素(人、墙、箱子等),并在屏幕上把地图画出来。同时也应自带一个方法来判断此地图上的箱子是否已经送到了指定位置(这样子方便换关卡):

Step3:定义游戏界面类

游戏界面类负责解析levels文件夹下的游戏各关卡的地图文件,并利用游戏地图类创建并显示游戏地图:

同时因为游戏地图面积>游戏窗口界面,所以该类需要增加根据人物位置滚动游戏地图的功能:

Step4:定义某关的游戏主循环

主循环主要负责实例化游戏界面类,并根据按键检测的结果对游戏界面类进行一些操作:

其中人物移动的逻辑为:人物移动的目标为空白格,则人移动;若撞到箱子,箱子可以和人方向一样移动一格,则人和箱子均移动;其他情况人和箱子均无法移动。

Step5:定义游戏开始、切换和结束界面

做的比较简陋,直接拿源代码吧。

开始界面:

切换界面:

结束界面:

Step6:实现游戏主函数

把所有界面串起来就好了:

最后随手加了个背景音乐,应该问题不大。看懂的同学们就试着做做,没看懂的同学们可以直接照着代码敲就完了,运行之后就如图所示:

没人看懂的话欢迎大家评论去留言呀!或者私信我都可以,评论必回,私信必看,不错过任何一个认真学习的同学!!!


http://www.ppmy.cn/news/1015055.html

相关文章

【保姆级】Redis集群(cluster)本地案例手把手操作指南(含常见问题以及处理方式)

对原理感兴趣的同学可以先看这篇 【Redis】高可用之三:集群(cluster)_AQin1012的博客-CSDN博客官网地址由于数据量过大,单个Master复制集难以承担,因此需要对多个复制集进行集群,形成水平扩展。每个数据集…

Spring Boot如何访问不同的数据库

在Spring Boot应用中连接多个数据库或数据源可以使用多种方式,下面介绍两种常用的方法: 1、使用Spring Boot官方支持的多数据源配置 spring boot提供了官方支持的多数据源配置,可以简单地配置和管理多个数据源。 需要在application.properti…

【Linux】公网环境下Ubuntu系统SSH远程树莓派

前言 📕作者简介:热爱跑步的恒川,致力于C/C、Java、Python等多编程语言,热爱跑步,喜爱音乐的一位博主。 📗本文收录于恒川的日常汇报系列,大家有兴趣的可以看一看 📘相关专栏C语言初…

代码随想录训练营一刷总结

代码随想录训练营一刷总结 一、数组 四类经典题目:二分法、双指针法、滑动窗口、模拟行为。 二、链表 经典题目:虚拟头结点、链表的基本操作、反转链表、删除倒数第N个节点、链表相交、环形链表。 三、哈希表 希表都是用来快速判断一个元素是否出现…

使用Python + Flask搭建web服务

示例脚本 from flask import Flask# 获取一个实例对象 app Flask(__name__)# 1、注册 app.route(/reg, methods[get]) def reg():return {code: 200,msg: reg ok!}# 2、登录 app.route(/login, methods[get]) def login():return login ok!if __name__ __main__:…

opencv基础-33 图像平滑处理-中值滤波cv2.medianBlur()

中值滤波是一种常见的图像处理滤波技术,用于去除图像中的噪声。它的原理是用一个滑动窗口(也称为卷积核)在图像上移动,对窗口中的像素值进行排序,然后用窗口中像素值的中值来替换中心像素的值。这样,中值滤…

安全防御(3)

1.总结当堂NAT与双机热备原理,形成思维导图 2.完成课堂nat与双机热备试验 引用IDS是指入侵检测系统,它可以在网络中检测和防御入侵行为。IDS的签名是指根据已知入侵行为的特征制定的规则,用于检测和警告可能存在的入侵行为。签名过滤器可以根…

可解释性分析的一些类别(草稿)(视觉)

目录 1.交互性解释 2. 本身具有解释性的模型 3.如何将可解释性分析应用到生成模型 参考文献 视觉领域从2020年开始可以分为两块,一个是图像分类,一个是图像生成。 图像分类:输入一张图片,输出语义标签,就是这张图…