开发工具

Python版本: 3.6.4

相关模块:

pygame模块;

以及一些Python自带的模块。

环境搭建

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

上效果图

原理简介

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

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

控制方式:

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

逐步实现:

Step1:定义游戏精灵类

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

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

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

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

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

Step2:定义游戏地图类

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

Step3:定义游戏界面类

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

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

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

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

其中人物移动的逻辑为:

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

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

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

开始界面:

切换界面:

结束界面:

Step6:实现游戏主函数

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

图片

文章到这里就结束了,感谢你的观看,Python24个小游戏系列,下篇文章分享外星人入侵小游戏

为了感谢读者们,我想把我最近收藏的一些编程干货分享给大家,回馈每一个读者,希望能帮到你们。

干货主要有:

① 2000多本Python电子书(主流和经典的书籍应该都有了)

② Python标准库资料(最全中文版)

③ 项目源码(四五十个有趣且经典的练手项目及源码)

④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)

⑤ Python学习路线图(告别不入流的学习)

想要的小伙伴可以转发点赞+关注获取完整源代码。。

提前预告下期咱们分享python实现龙跳一跳小游戏,咱们下期在见哦!记得点赞关注不然找不到我了哦!!!上下期效果图。

上效果图

Python游戏开发,Python实现童年小游戏推箱子 附带源码相关推荐

  1. 视频教程-Layabox3D游戏开发入门-微信3D小游戏案例 -微信开发

    Layabox3D游戏开发入门-微信3D小游戏案例 有多年Unity程序开发经验,有策划和美术设计的经验.愿意在csdn这个平台和大家一起分享! 金龙 ¥29.00 立即订阅 扫码下载「CSDN程序员 ...

  2. Python基于改进YOLOv5的烟叶病害检测系统(附带源码)

    Python基于改进YOLOv5的烟叶病害检测系统(附带源码) 1.背景 2.前言 3.烟叶数据集的采集 4.烟叶数据集的标注 5.烟叶检测训练&识别效果 6.病害数据集的采集 7.病害数据集 ...

  3. Python基于OpenCV的指针式表盘检测系统(附带源码&技术文档)

    1.背景 指针式机械表盘具有安装维护方便.结构简单.防电磁干扰等诸多优点, 目前广泛应用于工矿企业.能源及计量等部门.随着仪表数量的增加及精密仪表技术的发展,人工判读已经不能满足实际应用需求.随着计算 ...

  4. 一行Python代码就可以玩一些童年小游戏

    场景 近来发现一个python的库很有意思叫freegames 可以使用pip安装后玩一些类似于贪吃蛇.吃豆人等一些小游戏. 注: 博客主页: https://blog.csdn.net/badao_ ...

  5. 【小游戏合集】之用Python自己开发一个闯关小游戏——开心消消乐

    导语: 今天这期小游戏是最适合小伙伴们一同挑战的精美手游,其因画面精美.上手简单.休闲有趣.有惊喜有挑战而获得广大玩家的喜爱...这款小游戏没错就是开心消消乐,相信大家都不陌生,其曾在 2015 年获 ...

  6. 【Python游戏】Python各大游戏合集(3):飞翔的小鸟、俄罗斯方块、24点小游戏、吃豆豆小游、扫雷 | 附带源码

    相关文件 关注小编,私信小编领取哟! 当然别忘了一件三连哟~~ 公众号:Python日志 可以关注小编公众号,会不定时的发布一下Python小技巧,还有很多资源可以免费领取哟!! 源码领取:加Pyth ...

  7. 游戏开发15课 微信小游戏自审报告

    微信小游戏个人提交的时候需要写下自审报告 然后打印签名 后拍照上传以下是模板有兴趣的可以看看 自审报告 本⼈根据<网络游戏管理暂行办法>对我开发的小游戏产品<xxxx>进行自行 ...

  8. html5游戏开发-弹幕+仿雷电小游戏demo

    本游戏使用的是html5的canvas,运行游戏需要浏览器支持html5. 本篇文章详细讲解如何用html5来开发一款射击游戏,雷电可以说是射击游戏中的经典,下面就来模仿一下. 先看一下游戏截图 演示 ...

  9. 《游戏开发》html5 益智小游戏-小熊吃星星

    游戏截图 项目结构 一共3个文件 分别为 index.html   script.js style.css index.html文件源码展示 <!DOCTYPE html> <htm ...

最新文章

  1. python个人博客源码_我的使用Sanic的个人博客源码开源了!
  2. Android动态获取图片资源
  3. SQL语言之DDL语言学习-----数据定义语言学习
  4. 若依微服务版怎样修改Nacos中配置文件使Url不受权限认证跳过Token验证
  5. 如何训练孩子上厕所(初级篇)
  6. 优秀的程序员都避开了哪些坑?
  7. WEB开发中合理选择图片格式
  8. JAVA零碎要点015---java BigDecimal常见操作_加减乘除操作_比较_取几位小数四舍五入_随时更新
  9. html鼠标变成小手_什么牌子的鼠标好用?2020双十一鼠标选购建议和产品推荐
  10. 【ArcGIS|空间分析|网络分析】1 创建网络数据集
  11. 大学学计算机7代i5够吗,学生党必看:装机Intel酷睿7代中最应该选CPU是它们
  12. 艺术留学|工业设计专业2019大学新排名
  13. 写HTML为什么骨架生成不了,HTML骨架
  14. 1.3 可移植性和标准
  15. 使用容联云通讯实现短信验证登入
  16. lisp 套料_标志排字及过桥的AutoCAD自动化插件设计
  17. 如何选择垃圾收集器?
  18. 判断网站被降权的方法
  19. 01-使用EasyExcel读取和写入Excel文件
  20. 计算机单机取证(autopsy工具使用)

热门文章

  1. DirectX 3D基础复习
  2. [汉化教程] Android(APK)软件汉化完整详细图文教程(含工具软件)
  3. 联机斗地主小游戏(Java) 源代码及软件开发过程
  4. jquery获取父窗口的元素
  5. 王小波文集 工作与人生
  6. 从零开始,教你如何破解WEP、WPA无线网络 密码
  7. 最快的远程控制软件radmin的配置和使用
  8. java全碳_全碳气动碟刹 JAVA佳沃VESUVIO公路车
  9. Android一段时间无操作之后,进入广告轮播界面,以及触摸之后停止轮播
  10. tkinter-listbox详解