Python版本:3.6.4相关模块:pygame模块;以及一些Python自带的模块。
需要安装Python并且添加环境变量,具体的PIP安装需要相关的模块。
代码运行方式:
这里以Win系统为基础,先输入cmd进入到运行界面,然后直接cd跳转到目标文件夹,在窗口中运行游戏文件就可以玩了。运行出来的效果如下图所示:
游戏简介
推箱子和贪食蛇一样,是一个非常经典的古老游戏,游戏需要把对应的箱子推到对应的位置才算过关,一不小心就可能出现箱子无法再移动或者通道被堵住的情况,所以非常考验你的逻辑能力,你需要巧妙利用游戏地图中有限的空间,合理安排每个箱子的次序和位置才能顺利过关!
移动人物的方式:按键盘的↑↓←→键控制游戏人物上下左右移动,R键为重新开始本关卡。
代码实现步骤:
第一步:先定义游戏精灵类
由于游戏会涉及到地图的碰撞检测,所以需要先定义游戏中的类,比如推箱子的人,箱子,目标位置,墙。
精灵类:
精灵人物需要有可以移动的能力,可以设置一个模拟移动的选项,因为和地图上其它的东西性质差不多,所以可以定义为同一个精灵类,但是这个精灵类中的对象还是要有区别的,毕竟人和物需要区分开来。
“箱子”需要具有可以移动的能力,而墙和目标地点不需要具备。
第二步:定义游戏地图类
这里我们定义一个游戏地图类,目的是用该类来创建任意的游戏地图。因此,该类应当可以增加并保存游戏元素(人、墙、箱子等),并在屏幕上把地图画出来。同时也应当自带一个方法来判断此地图上的箱子是否都已经送到了指定位置(这样子方便切换关卡):
Step3:定义游戏界面类
游戏界面类负责解析levels文件夹下的游戏各关卡的地图文件,并利用游戏地图类创建并显示游戏地图:
同时因为游戏地图面积>游戏窗口界面, 所以该类需要增加根据人物位置滚动游戏地图的功能:
Step4:定义某关的游戏主循环
主循环主要负责实例化游戏界面类,并根据按键检测的结果对游戏界面类进行一些操作:
其中人物移动的逻辑为:
人移动的目标位置为空白格,则人移动;若撞到箱子,箱子可以和人方向一样移动一格,则人和箱子均移动;其他情况人和箱子均无法移动。
Step5:定义游戏开始、切换和结束界面
做的比较简陋,直接给源码吧。
开始界面:
切换界面:
结束界面:
Step6:实现游戏主函数
把所有界面串起来就好啦:
再随手加一个游戏的背景音乐,我们就可以开始正常玩游戏了!
留言与评论(共有 0 条评论) |