资源下载地址:https://download.csdn.net/download/sheziqiong/85909336
资源下载地址:https://download.csdn.net/download/sheziqiong/85909336

导语

月初更波 python 制作小游戏系列吧~用 python 写了个推箱子小游戏,在这里分享给大家,让我们愉快地开始吧~

开发工具

Python 版本:3.6.4

相关模块:

pygame 模块;

以及一些 Python 自带的模块。

环境搭建

安装 Python 并添加到环境变量,pip 安装需要的相关模块即可。

先睹为快

在 cmd 窗口运行"Game12.py"文件即可。

效果如下:

原理简介

游戏简介(来源:百度百科):

经典的推箱子是一个来自日本的古老游戏,目的是在训练你的逻辑思考能力。在一个狭小的仓库中,要求把木箱放到指定的位置,稍不小心就会出现箱子无法移动或者通道被堵住的情况,所以需要巧妙的利用有限的空间和通道,合理安排移动的次序和位置,才能顺利的完成任务。

控制方式:

↑↓←→ 键控制人物行动,r 键重新开始本关。

逐步实现:

Step1:定义游戏精灵类

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

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

他需要拥有可以移动的能力,这里设置了一个模拟移动的选项,是为了通过模拟移动判断他是否可以向上/下/左/右移动。

因为地图上的其他东西性质类似,所以我们把它们定义成同一个精灵类(T_T 其实性质都类似,但是感觉还是有必要区分一下人和物的):

其中箱子需要拥有可以移动的能力,其他则不能移动。模拟移动选项的功能与之前类似。

Step2:定义游戏地图类

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

Step3:定义游戏界面类

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

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

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

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

其中人物移动的逻辑为:

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

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

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

开始界面:

结束界面:

Step6:实现游戏主函数

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


资源下载地址:https://download.csdn.net/download/sheziqiong/85909336
资源下载地址:https://download.csdn.net/download/sheziqiong/85909336

基于Python制作实现的推箱子小游戏相关推荐

  1. 基于Python制作的消消乐小游戏

    导语 哈喽,好久不见.消失人口上线更新一波每月必出的 python 制作小游戏系列文章.本期我们将制作一个消消乐小游戏,让我们愉快地开始吧 开发工具 Python 版本:3.6.4 相关模块: pyg ...

  2. python推箱子小游戏_小伙利用Python自制一个推箱子小游戏!

    原标题:小伙利用Python自制一个推箱子小游戏! 导语 月初更波python制作小游戏系列吧用python写了个推箱子小游戏,在这里分享给大家,让我们愉快地开始吧 小伙利用Python自制一个推箱子 ...

  3. python写推箱子_python写的推箱子小游戏

    原标题:python写的推箱子小游戏 导语 Python 功能强大,可以写爬虫.服务器.数据分析.AI--当然,也可以写游戏. 用python写了个推箱子小游戏,在这里分享给大家,让我们愉快地开始吧~ ...

  4. python写的推箱子小游戏

    作者:白露未晞me 来源:Charles的皮卡丘 导语 Python 功能强大,可以写爬虫.服务器.数据分析.AI--当然,也可以写游戏. 用python写了个推箱子小游戏,在这里分享给大家,让我们愉 ...

  5. 手把手教你使用Python实现推箱子小游戏(附完整源码)

    文章目录 项目介绍 项目规则 项目接口文档 项目实现过程 前置方法编写 move核心方法编写 项目收尾 项目完善 项目整体源码 项目缺陷分析 项目收获与反思 项目介绍 我们这个项目是一个基于Pytho ...

  6. c#推箱子小游戏代码_推箱子小游戏V1.0制作

    小游戏实践 推箱子简易版 大家好,我是努力学习争取成为优秀的Game Producer的路人猿,今天来一起做一个推箱子的简易版本V1.0!下面跟我一起做吧~ 我们用到的软件如下: 编辑类 Visual ...

  7. PLC也能制作小游戏----Codesys编写推箱子小游戏

    1.序言 前文已介绍,Codesys编程软件拥有的各种编译方式,以及强大的可视化功能,完全可以实现类似的小游戏程序编写,让疲惫的工控人员在调机的空闲之余可以休闲下,本文编写另一个小游戏,也是十几年前的 ...

  8. 基于Java Swing JFream 组件的趣味推箱子小游戏

    一 需求分析 设计一个经典的推箱子小游戏,在窗体里有墙,箱子,胜利的标志,和工人,用户可以通过键盘上的"上"."下"."左"."右 ...

  9. [源码和文档分享]基于Java Swing JFream 组件的趣味推箱子小游戏

    一 需求分析 设计一个经典的推箱子小游戏,在窗体里有墙,箱子,胜利的标志,和工人,用户可以通过键盘上的"上"."下"."左"."右 ...

  10. Python【小游戏合集】之自己做一个简单又好玩的推箱子小游戏

    导语:哈喽铁汁们~今日游戏之旅开始! 想领取完整源码跟python学习资料可私信我或点击这行字体 这期就是带大家使用当前主流且易用的Python语言做一个简单的推箱子小游戏 现在小编的快乐源泉就是玩自 ...

最新文章

  1. 线性回归api深度介绍
  2. BZOJ3233【AHOI2013】找硬币
  3. Spring抽取jdbc配置文件
  4. System.getProperty()参数
  5. Android studio之导入project出现SDK location not found. Define location with sdk.dir in the local.proper
  6. 【WebRTC---入门篇】(十一)STUN协议
  7. 【转】Linux终端下 dstat 监控工具
  8. Android系统(117)---Activity启动过程
  9. 2017年5月13日 恒生电子笔试题
  10. 读取金税盘数据库_一种基于金税盘控制系统登录和数据同步的方法与流程
  11. Power BI学习
  12. win7摄像头软件_电脑最好用录屏软件,一分钟下载安装
  13. Leetcode 684. 冗余连接(dsu,氵)
  14. TensorFlow中的通信机制——Rendezvous(一)本地传输
  15. 【图示】AppleID绑定支付宝的方法
  16. 【水哥RPA】配置水哥RPA环境变量报错的解决方法
  17. 2021-2027全球与中国美容淋浴器市场现状及未来发展趋势
  18. bash快捷键Quick bash shortcuts--用Enki学Linux系列(4)
  19. wxpython基本控件
  20. Excel怎么大图预览表格中的图片?

热门文章

  1. 班级网站java,ssm班级网站
  2. TRANSFORMER TRANSDUCER: A STREAMABLE SPEECH RECOGNITION MODELWITH TRANSFORMER ENCODERS AND RNN-T
  3. Android判断手机是否在口袋中,距离传感器
  4. 股票什么时候买入什么时候卖出适合?
  5. 几万网友选出的坑爹景点,你可别再去了
  6. 创新产品访谈:Ntalker V2.5
  7. 单片机课程设计车灯c语言,基于单片机控制的汽车车灯课程设计毕业设计(论文)word格式.doc...
  8. python第七天作业
  9. 线程池java submit,详解线程池execute和submit用法
  10. 关于打开网页FLASH显示叉叉问题