经典的推箱子是一个的游戏主循环主要负责实例化

经典的推箱子是一个的游戏主循环主要负责实例化

经典推箱子是一款来自日本的古老游戏,目的是训练你的逻辑思维能力。在小型仓库中,需要将木箱放在指定位置。一不小心,箱子将无法移动或通道将被阻塞。因此,需要巧妙地利用有限的空间和通道,合理安排移动次序。和位置,以便顺利完成任务。

控制方法:

↑↓←→键控制角色动作,r键重启关卡。

一步步:

Step1:定义游戏精灵类

由于游戏涉及碰撞检测,我们先定义一些游戏精灵类,包括推箱子、盒子、墙壁和目标位置指示器。

首先我们定义一下推箱子的人的elf类:

6bf6236f1850fb7c503bf9d58a88074b.png

推箱子游戏素材_微信推文素材大全_爱华仕箱子素材

他需要有移动的能力,这里有一个模拟移动的选项推箱子游戏素材,可以通过模拟移动来判断他是否可以上下左右移动。

因为地图上的其他东西本质上是相似的,所以我们把它们定义为同一个精灵类(T_T其实本质上也是相似的推箱子游戏素材音乐音效,但是感觉还是有必要区分人和物):

a92ec9c7126606726b93aa0ab7427860.png

其中,箱子需要有移动的能力,有的则不能。Simulate Move 选项的功能与以前类似。

Step2:定义游戏地图类

这里我们定义了一个游戏地图类,目的是使用这个类来创建任何游戏地图。因此,这个类应该能够添加和保存游戏元素(人、墙、盒子等),并在屏幕上绘制地图。同时开发学习,它还应该自带判断这张地图上的箱子是否已经送到指定位置的方法(方便切换关卡):

推箱子游戏素材_爱华仕箱子素材_微信推文素材大全

7d58ea2cdd6e661e48dbe6f7ba762a66.png

Step3:定义游戏接口类

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

5bcf669271483df229adc62a75619d28.png

同时由于游戏地图的面积大于游戏窗口的界面,所以该类需要添加根据角色位置滚动游戏地图的功能:

e325676cf2a23ec564f79c1f367a3964.png

微信推文素材大全_爱华仕箱子素材_推箱子游戏素材

Step4:定义一个关卡的游戏主循环

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

a26a612550b4d454b7b9e99b72c9fefa.png

角色移动的逻辑是:

如果人移动的目标位置是空白,则人会移动;如果撞到箱子,箱子可以和人同方向移动一格,人和箱子都会移动;在其他情况下,人和盒子都不能移动。

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

爱华仕箱子素材_微信推文素材大全_推箱子游戏素材

做起来比较简单,直接给源码就可以了。

启动界面:

0ba800a898ddc49bdb76ca0809a971c8.png

切换界面:

c2f941418484080be76fba5f29f245f3.png

结束界面:

推箱子游戏素材_微信推文素材大全_爱华仕箱子素材

074b804bb993cbea6f16aaade267c148.png

Step6:实现游戏的主要功能

只需将所有接口串在一起:

3eed563e6c056d0e967cea911f645676.png

随便加了一段背景音乐,应该问题不大T_T。

全部完成!有关完整的源代码,请参阅相关文档。

甚至

许多

本系列文章相关文档中提供了打包版本,无需搭建环境即可运行播放~