用户:千桦尽落查看:0 回复:1 评论:0 创建时间:2020-04-13T10:07:04
开发工具 Python版本:3.6.4 相关模块:pygame模块;以及一些Python自带的模块。 环境搭建
需要安装Python并且添加环境变量,具体的PIP安装需要相关的模块。
代码运行方式:
这里以Win系统为基础,先输入cmd进入到运行界面,然后直接cd跳转到目标文件夹,在窗口中运行游戏文件就可以玩了。运行出来的效果如下图所示:

游戏简介
推箱子和贪食蛇一样,是一个非常经典的古老游戏,游戏需要把对应的箱子推到对应的位置才算过关,一不小心就可能出现箱子无法再移动或者通道被堵住的情况,所以非常考验你的逻辑能力,你需要巧妙利用游戏地图中有限的空间,合理安排每个箱子的次序和位置才能顺利过关!
移动人物的方式:按键盘的↑↓←→键控制游戏人物上下左右移动,R键为重新开始本关卡。
代码实现步骤:
第一步:先定义游喵灵类
由于游戏会涉及到地图的碰撞检测,所以需要先定义游戏中的类,比如推箱子的人,箱子,目标位置,墙。
精灵类:
精灵人物需要有可以移动的能力,可以设置一个模拟移动的选项,因为和地图上其它的东西性质差不多,所以可以定义为同一个精灵类,但是这个精灵类中的对象还是要有区别的,毕竟人和物需要区分开来。
“箱子”需要具有可以移动的能力,而墙和目标地点不需要具备。
第二步:定义游戏地图类
回想一下以前玩过的推箱子游戏,每一关墙、人、箱子的位置和数量都不一样,所以需要定义一个游戏地图类,里面包含了游戏元素(如人,墙,箱子),并且需要在屏幕上画出来。而且还要自带一个方法,用这个方法来判定地图上的箱子是否都到了指定的位置,如果到了指定的位置,那么就切换关卡,进入下一关。
第三步:定义游戏界面类
这个类的主要功能是负责解析文件的各类地图文件,然后利用上面的游戏地图类创建地图,并且显示在用户运行窗口中。下面为代码实现:
需要注意的是,游戏地图面试肯定要小于用户运行的游戏窗口的界面,所以说这个类需要增加功能:根据人物位置滚动游戏地图。具体的代码实现在下方:
第四步:定义关卡的游戏主循环
游戏关卡有很多,但是其实想想都是大同小异,主要就是墙的位置和箱子的数量、通关位置不一样,所以可以创建一个循环函数来实现:
值得一提的是,当人一个人单独移动的时候,如果撞到箱子,那么箱子和人移动的方向一样,也移动一个,其它情况箱子和人是不能单独移动的。
第五步:游戏开始、切换和结束界面
这个就不做过多的详解了,都比较简单,初始化数据就可以了,直接上代码吧!
开始界面:
切换界面:
结束界面:
第六步:实现游戏主函数
这一步是最后一步,也是最简单的一步,把上面所有文件的界面串起来,然后运行就可以了!代码看下面:
PS:其实可以再随手加一个游戏的背景音乐,让游戏变得更有趣味性,但是主要是讲的编程技术,所以这个就略过了!