python推箱子小游戏源代码_Python制作推箱子小游戏
开发工具
Python版本:3.6.4
相关模块:
pygame模块;
以及一些Python自带的模块。
环境搭建
安装Python并添加到环境变量,pip安装需要的相关模块即可。
原理简介
游戏简介
经典的推箱子是一个来自日本的古老游戏,目的是在训练你的逻辑思考能力。在一个狭小的仓库中,要求把木箱放到指定的位置,稍不小心就会出现箱子无法移动或者通道被堵住的情况,所以需要巧妙的利用有限的空间和通道,合理安排移动的次序和位置,才能顺利的完成任务。
控制方式:
↑↓←→键控制人物行动,r键重新开始本关。
逐步实现:
Step1:定义游戏精灵类
由于游戏涉及到碰撞检测,所以我们先来定义一些游戏精灵类,包括推箱子的人、箱子、墙和目标位置指示标记。
首先我们来定义一下推箱子的人这个精灵类:
图片
他需要拥有可以移动的能力,这里设置了一个模拟移动的选项,是为了通过模拟移动判断他是否可以向上/下/左/右移动。
因为地图上的其他东西性质类似,所以我们把它们定义成同一个精灵类(T_T其实性质都类似,但是感觉还是有必要区分一下人和物的):
图片
其中箱子需要拥有可以移动的能力,其他则不能移动。模拟移动选项的功能与之前类似。
Step2:定义游戏地图类
这里我们定义一个游戏地图类,目的是用该类来创建任意的游戏地图。因此,该类应当可以增加并保存游戏元素(人、墙、箱子等),并在屏幕上把地图画出来。同时也应当自带一个方法来判断此地图上的箱子是否都已经送到了指定位置(这样子方便切换关卡):
图片
Step3:定义游戏界面类
游戏界面类负责解析levels文件夹下的游戏各关卡的地图文件,并利用游戏地图类创建并显示游戏地图:
图片
同时因为游戏地图面积>游戏窗口界面, 所以该类需要增加根据人物位置滚动游戏地图的功能:
图片
Step4:定义某关的游戏主循环
主循环主要负责实例化游戏界面类,并根据按键检测的结果对游戏界面类进行一些操作:
图片
其中人物移动的逻辑为:
人移动的目标位置为空白格,则人移动;若撞到箱子,箱子可以和人方向一样移动一格,则人和箱子均移动;其他情况人和箱子均无法移动。
Step5:定义游戏开始、切换和结束界面
做的比较简陋,直接给源码吧。
开始界面:
图片
切换界面:
图片
结束界面:
图片
Step6:实现游戏主函数
把所有界面串起来就好啦:
图片
All Done!完整源代码欢迎与我交流。
python推箱子小游戏源代码_Python制作推箱子小游戏相关推荐
- python3小游戏源代码_Python3制作仿“FlappyBird”小游戏|python3教程|python入门|python教程...
https://www.xin3721.com/eschool/pythonxin3721/ 本文转载至知乎ID:Charles(白露未晞)知乎个人专栏 下载W3Cschool手机App,0基础随时随 ...
- python3小游戏源代码_Python入门塔防小游戏,开发步骤和源码,带你轻松学python...
在上一篇文章中,我介绍了有关python入门塔防小游戏的一些功能,下面我继续讲解有关这个小游戏的大致开发步骤. 开发工具还是: Python版本:3.6.4 相关的模块有:pygame模块,以及一些p ...
- python塔防小游戏代码_Python制作塔防小游戏
开发工具 Python版本:3.6.4 相关模块: pygame模块: 以及一些Python自带的模块. 原理介绍 游戏规则简介: 玩家通过建造箭塔抵御敌人的进攻. 每隔一段时间,将会有一波敌人从 ...
- 【有趣的Python小程序】Python多个简单上手的库制作WalkLattice 走格子游戏 (思路篇)上
篇写上一个思路篇,那么今天我们就来完成这一项工作 源代码和配套文件 链接: https://caiyun.139.com/m/i?135ClY1yWrSKX 提取码:e4pq 复制内容打开中国移动云盘 ...
- Python版基于pygame的玛丽快跑小游戏源代码,玛丽冒险小游戏代码,支持双人模式
基于pygame的玛丽快跑小游戏源代码,玛丽冒险小游戏代码,支持双人模式 按空格进入单人模式,按't'进入双人模式,双人模式下玛丽1采用空格键上跳,玛丽2采用方向上键上跳. 完整代码下载地址:Pyth ...
- HTML趣味钢琴小游戏源代码,钢琴琴谱练习小游戏源代码
HTML趣味钢琴小游戏源代码,钢琴琴谱练习小游戏源代码 完整代码下载地址:HTML趣味钢琴小游戏源代码,钢琴琴谱练习小游戏源代码 index.html <!DOCTYPE html> &l ...
- 【抖音小游戏】 Unity制作抖音小游戏方案 最新完整详细教程来袭【持续更新】
前言 [抖音小游戏] Unity制作抖音小游戏方案 最新完整详细教程来袭[持续更新] 一.相关准备工作 1.1 用到的相关网址 1.2 注册字节开发者后台账号 二.相关集成工作 2.1 下载需要的集成 ...
- 微信小程序|基于小程序+云开发制作一个菜谱小程序
今天吃什么?这是一个让强迫症左右为难的问题,跟随此文基于小程序+云开发制作一个菜谱小程序,根据现有食材一键生成菜谱,省心又省力. 一.小程序 1. 创建小程序
- python编程剪刀石头布思路_Python制作简单的剪刀石头布游戏
关于程序相关的 您可以反复玩游戏,直到选择停止为止. 该程序跟踪获胜情况. 大小写无关紧要(即ROCK与Rock相同). 如果您输入的内容无效,程序会一直提示您,直到您输入有效的内容. 对项目进行编码 ...
最新文章
- smbpasswd 和 pdbedit 的区别
- [JavaWeb基础] 018.Struts2 Action通配符使用
- 图解python专业教程_图解Python视频教程(基础篇)课程
- linux on android分区,android 分区大小 地址查看
- 手机壁纸自动采集小程序源码
- scala method与function的区别
- 微信小程序盲盒系统源码 带教程
- pom.xml 导入ojdbc6报错
- 3D打印发光字与传统工艺发光字的区别具体有哪些?
- IOS软键盘弹起,顶起页面使其脱离文档流,input失焦后,留下空白问题解决
- 深扒Mobileye—与特斯拉分手,被英特尔收购,现在又成了蔚来的救星?
- 大数据和 AI 驱动创新实例分享
- Liunx命令符(面试题)
- Qt自定义对话框及调用方法
- openstack搭建(私有云、公有云)云计算遇到的相关问题汇总整理
- 基于51单片机的gps定位系统
- layim之初始化配置
- 使用递归方法查询所有分类(一)
- 苹果手机话筒声音小怎么办_苹果8通话声音小,苹果8听筒声音小怎么办
- ipad2019编写html,2019 iPad性能排行榜,选对型号很重要