用 scratch 编程实现经典推箱子游戏,训练逻辑思考能力

日期: 2024-06-25 07:11:15|浏览: 201|编号: 54839

友情提醒:信息内容由网友发布,本站并不对内容真实性负责,请自鉴内容真实性。

经典的推箱子是一个古老的游戏,旨在训练你的逻辑思维能力。

今天我用编程的方式完成了这个游戏的整个流程,脚本里只设计了三个关卡,学习了今天的教程之后,可以自定义各种关卡,今天的文章会比较长。

阐明:

1. 各个关卡的地图并不是预先PS好的图片,而是用图章绘制的。

2、四个方框代表四个人物,不能用邮票移动,克隆又太麻烦。

3. 使用了四个变量:关卡、是否通过关卡、箱子移动的方向、砖块大小。砖块大小视为常数。

角色

1. 一面方形的墙;2. 四个盒子(2种形状);3. 点(将盒子推到指定位置);4. 小猫(推盒子);5. 开始按钮;6. 关卡;7. 下一关按钮;8. 重玩按钮。一共有11个角色。

多变的:

1.关卡;2.是否通关;3.箱子移动的方向;4.砖块的大小

背景:

背景一共有两个,分别是起始背景和游戏背景,对应的脚本很简单,主要集中在流程控制上。

开始游戏,右上角会显示关卡,可以重玩:

流程控制,点击后,改变造型,发送相应广播以及隐藏。

墙壁角色:

重要人物,用图章绘制不同的地图。点击小绿旗的时候一定要隐藏,然后把绘制的图章擦掉。然后绘制地图。这里有一个小细节,为了对应每个重要人物的大小,每个重要人物的建模图片都设置为100*100像素。在脚本中,墙设置为30,这也是我们砖块大小变量的值。用图章绘制地图该怎么画呢?

如上图,绘制无非就是将绘图图章往四个方向移动,所以先定义四个自制的积木块,每个积木块为一个基本移动距离。比如一开始地图就是四条水平的基本墙,所以就是循环“X向右”四次。如图,只截取了一部分。地图从左上角开始,有的以X坐标递增的方式开始,因为每张地图的初始位置不一样。最后要注意的是,绘制完地图后,要将主体隐藏,同时完成地图播报。

当我们收到游戏开始信号时,我们显示第一关卡地图,并初始化几个变量来定义地图的初始位置。当我们收到完成关卡信号时,我们通过关卡号来决定显示地图的哪一关。

盒子角色:四个盒子对应四个角色。

地图生成后,初始框位于地图中,并切换到第一个形状。

接下来就是重点了,我们需要判断盒子往哪个方向推,盒子应该往哪个方向移动,同时还要判断盒子是否撞到墙,撞到其他盒子,是否移动到指定点。首先说一下判断移动方向,根据盒子移动方向的变量,我自定义了盒子移动的方向,前:1,后:2,左:3,右:4。比如往右推盒子的时候,变量就设置为4。如下图,三种颜色分别对应墙,盒子,红盒子,当接收到移动指令的时候,默认是可以移动的,所以先增加对应的坐标,然后判断是否满足撞墙条件,如果满足就往后移动。最后如果撞到红点,就切换到第二个造型。

这四个角色还有脚本,点击重播按钮,盒子就会根据关卡回到初始位置,并切换为第一个造型。

红点字符,(移动到指定位置):

这里就不详细解释如何使用邮票了。

小猫角色(重要角色):

收到地图完成后,移动到地图初始位置,切换为猫步前进,同时收到重放时根据等级判断返回初始位置。

然后还有一个很重要的脚本,当你按方向键移动小猫的时候,需要对小猫做两个判断,第一个判断是否撞到墙,第二个判断是否撞到箱子。我再强调一下,我们的碰撞机制是小猫移动的时候默认是不会撞到任何东西的,小猫必须先移动一段距离,然后再做判断。

1. 如果撞到墙,就朝相反方向退去。

2、当你击中一个盒子(盒子有两种形状和两种颜色)时,把盒子移动的方向的变量改为对应的数字,广播你击中了盒子,并告诉盒子我在推你。

盒子做出判断之后(见盒子脚本),如果盒子发现自己动不了,就广播说盒子挡住了猫,小猫收到了盒子挡住了猫的消息,就往反方向退去,相当于不动了。

最后,一段小猫脚本告诉玩家当四个箱子都移动到位时,即为过关,并开始下一关。这里将是否过关的变量设置为1(1为过关,0为不过关),这是能否开始下一关,不可跳过的重要参数。

下一级角色:

通过是否过关参数来判断是否过关,如果过关则额外增加一个关卡,否则进行提示。

提醒:请联系我时一定说明是从高奢网上看到的!