Python【小游戏合集】之自己做一个简单又好玩的推箱子小游戏
导语:哈喽铁汁们~今日游戏之旅开始!
想领取完整源码跟python学习资料可私信我或点击这行字体
这期就是带大家使用当前主流且易用的Python语言做一个简单的推箱子小游戏
现在小编的快乐源泉就是玩自个开发的游戏(前几日在地铁上玩游戏旁边小学生一直问我玩的是哪个版本怎么没见过可给我得瑟的哈哈哈哈 )废话不多说接下来小编就要放大招了!!
上源码:
相关文件
源代码代码&素材&可执行文件:
https://github.com/CharlesPikachu/Games/tree/master/Game12
游戏图片与音频素材源于网络,未用于商业用途,如有侵权请联系删除。
开发工具
Python版本:3.6.4
相关模块:
pygame 模块;
以及一些Python自带的模块。
环境搭建
安装Python并添加到环境变量,pip安装需要的相关模块即可。
先睹为快
在cmd窗口运行"python Game12.py"文件即可。
效果如下:
用python做的推箱子小游戏
游戏简介(来源:百度百科):
经典的推箱子是一个来自日本的古老游戏,目的是在训练你的逻辑思考能力。在一个狭小的仓库中,要求把木箱放到指定的位置,稍不小心就会出现箱子无法移动或者通道被堵住的情况,所以需要巧妙的利用有限的空间和通道,合理安排移动的次序和位置,才能顺利的完成任务。
控制方式:
↑↓←→键控制人物行动,r键重新开始本关。
逐步实现:
Step1:定义游戏精灵类
由于游戏涉及到碰撞检测,所以我们先来定义一些游戏精灵类,包括推箱子的人、箱子、墙和目标位置指示标记。
首先我们来定义一下推箱子的人这个精灵类:
他需要拥有可以移动的能力,这里设置了一个模拟移动的选项,是为了通过模拟移动判断他是否可以向上/下/左/右移动。
因为地图上的其他东西性质类似,所以我们把它们定义成同一个精灵类(T_T其实性质都类似,但是感觉还是有必要区分一下人和物的):
其中箱子需要拥有可以移动的能力,其他则不能移动。模拟移动选项的功能与之前类似。
Step2:定义游戏地图类
这里我们定义一个游戏地图类,目的是用该类来创建任意的游戏地图。因此,该类应当可以增加并保存游戏元素(人、墙、箱子等),并在屏幕上把地图画出来。同时也应当自带一个方法来判断此地图上的箱子是否都已经送到了指定位置(这样子方便切换关卡):
Step3:定义游戏界面类
游戏界面类负责解析levels文件夹下的游戏各关卡的地图文件,并利用游戏地图类创建并显示游戏地图:
同时因为游戏地图面积>游戏窗口界面, 所以该类需要增加根据人物位置滚动游戏地图的功能:
Step4:定义某关的游戏主循环
主循环主要负责实例化游戏界面类,并根据按键检测的结果对游戏界面类进行一些操作:
其中人物移动的逻辑为:
人移动的目标位置为空白格,则人移动;若撞到箱子,箱子可以和人方向一样移动一格,则人和箱子均移动;其他情况人和箱子均无法移动。
Step5:定义游戏开始、切换和结束界面
做的比较简陋,直接给源码吧。
开始界面:
切换界面:
结束界面:
Step6:实现游戏主函数
把所有界面串起来就好啦:
随手加了个背景音乐,应该问题不大吧┗|`O′|┛
end:
今日推箱子小游戏就分享到这了喜欢的铁汁们记得三连噢!!听说三连的小可爱都有钱途欸~
Python【小游戏合集】之自己做一个简单又好玩的推箱子小游戏相关推荐
- 放假只能打游戏?不如自己做个简单又有趣的推箱子小游戏
目录 前言 游戏效果图 游戏开发思路 游戏逻辑的分析 源代码实现 头文件 PushBackGame.c文件 test.c文件 前言 本游戏需要用到的核心技术,如下: 二维数组 分支语句 技术难点: 二 ...
- 一个适合初学者的C++推箱子小游戏
一个适合初学者的C++推箱子小游戏 博主最近在学习关于C++的一些基础,这是本人突发奇想做的一个小游戏,编程其实并不难,重要的是,你的思路,以及优化,当然,这个小游戏,本人也是基于一个学习者编写的 本 ...
- python七彩同心圆_用pygame做一个简单的python小游戏---七彩同心圆
用pygame做一个简单的python小游戏---七彩同心圆 用pygame做一个简单的python小游戏-七彩同心圆 这个小游戏原是我同学python课的课后作业,并不是很难,就简单实现了一下,顺便 ...
- 【Java十大热门游戏合集】Java经典游戏项目
家人们,今天我们来看一下学Java必练的10款游戏项目! 大家都知道学习编程必须要做的就是敲代码和做项目练手了,那项目有难有易,很多小伙伴不知道从哪里找项目来练习,今日我们来看一下初级项目中都有哪些能 ...
- 计算机工程师专用小工具,204个联想工程师专用小工具合集
204个联想工程师专用小工具合集,为联想用户整理了204个常用的小工具,Flash修复工具.Fn+F5快捷键修复工具.Framework修复工具等. 204个联想工程师专用小工具合集简介 204个联想 ...
- Python【小游戏合集】之重温童年最爱的扫雷小游戏
导语: 哈喽吖!有许多铁汁们私信小编说用Python自行制作小游戏 之后简直就是上头了~让wo多出一点小游戏合集(看来铁汁们跟小编一样都酷爱游戏) 有求必应~小游戏立刻安排上啦~~(扫雷真的是 ...
- 用Python制作【小游戏合集】之小鸟管道游戏附源码啊~
导语 哈喽小编今日发现自己已经大半个月没有写小游戏啦~对于喜欢[小游戏合集]的铁汁们 深感歉意! 于是小编连忙给大家补上这一期!
- Python制作【小游戏合集】之愤怒的小鸟
导语: 哈喽铁汁们!!几天不上线的小游戏合集它又来了(主要是每日写小游戏小编怕你们会觉得腻)
- 用pygame做一个简单的python小游戏---贪吃蛇
用pygame做一个简单的python小游戏-贪吃蛇 贪吃蛇游戏博客链接:(方法一样,语言不一样) c++贪吃蛇:https://blog.csdn.net/weixin_46791942/artic ...
最新文章
- 13Flyweight(享元)模式
- redis cluster 添加 删除 重分配 节点
- 【Android 应用开发】BluetoothServerSocket详解
- boost::multiprecision模块测试 cpp_dec_float_50 是否符合我们的 概念要求
- 【转】三五个人十来条枪 如何走出软件作坊成为开发正规军
- Vue中的computed属性
- 【剑指offer】面试题31:栈的压入,弹出序列
- 顶会 | 腾讯AI Lab 9篇入选论文解读
- 8.PHP核心技术与最佳实践 --- 缓存
- 【图像隐写】基于matlab GUI DCT数字水印嵌入与提取【含Matlab源码 1323期】
- linux非root用户添加rzsz,Linux rz sz 安装
- 原生JavaScript使用和jQuery使用
- 【PCIe】【翻译】AER 内核驱动 《pcieaer-howto》PCI Express高级错误报告驱动程序指南
- 希尔伯特空间巴拿赫空间空间上的翻译
- 【TUN模式】对QQ或者微信域名、QQ邮箱、微信公众号文章、微信开发者社区相关的网站访问非常慢、图片加载不出来、网页空白的解决方案
- 嵌入式ARM设计编程(三) 处理器工作模式
- 世界上各个国家和首都
- c# 删除C:\Windows\System32\oobe下的文件
- 《思考,快与慢》荐读
- Compaq 511系列 显卡驱动 声卡驱动 网卡驱动
热门文章
- PR剪辑教学之电子相册案例
- linux命令行下写for语句,Linux下Shell的for循环语句示例
- php ios utf8编码,ios,utf-8_iOS开发, 如何通过HTTP Post发送这个符号到服务器?,ios,utf-8 - phpStudy...
- KMP之GoodLuck!
- DXP生成gerber文件以及贴装的坐标文件
- 接入AppleID登录 go语言实现
- Mattermost桌面端使用代理访问服务器
- 中文文本分类之TextRNN
- BENET2.0教材 组建与维护企业邮件系统
- 【优化选址】遗传算法求解物流配送中心选址【含Matlab源码 1917期】