滚动(精灵)

在Scratch中,滚动是指(通常连续的)精灵在舞台上的移动。它常用于平台游戏、滚动文本、冒险游戏中的地图以及有时用于大型图片,可以在许多项目中找到。使用滚动的项目称为滚动器。

如何滚动

滚动脚本使一个或一组精灵在屏幕上移动,通常用于创建大于舞台大小的图像。Scratch限制了精灵的大小为舞台大小(480x360),因此用户需要依靠滚动来创建更大的图像。

许多滚动方法涉及一系列连续的精灵,每个精灵的大小与舞台相同。

不重复使用精灵进行滚动

对于初学者来说,最常用的方法有时被称为“传统方法”,因为它通常是用户尝试的第一种方法,并且在Scratch的示例项目中有展示。[需要引证]它使用多个精灵,每个精灵对应可滚动区域的一个480x360的瓦片。

要创建一个可双向滚动的区域,需要如下的脚本:

图1

具有这个脚本的精灵将出现在位置0。480是精灵之间的间距,如果需要可以进行更改。乘以的数字决定了其在一组精灵中的位置,而滚动x变量允许用户控制该组精灵的运动(在此示例中是在x轴上)。

每个新的精灵必须手动分配一个新的位置编号。以下脚本将把下一个精灵放置在位置1,使其出现在第一个精灵旁边。

图2

由于Scratch会阻止精灵超出舞台区域,可能需要使用类似下面的脚本来防止精灵重叠:

图3

或者,可以在屏幕外围创建一个边框。

最后,像下面这样的输入脚本允许用户更改滚动x变量,从而改变精灵的位置。

图4

无限滚动

这是一种无限滚动的方法。对应的脚本如下:

图5

然后,使用另一个脚本的第二个精灵:

图6

X和Y轴滚动

这与“传统方法”相同,只是在两个维度上进行移动。需要更多的脚本,就像上面的脚本一样,只是使用不同的变量,并且需要将数字480替换为要滚动的区域的高度(通常为360)。

两个玩家滚动

两个玩家滚动通常是分屏滚动。使用此方法时,一个玩家的角色位于屏幕顶部,另一个位于底部。玩家使用不同的控制方式,但他们的角色在相同的背景中存在于相同的景观中。这种方法通常在许多视频游戏中使用,通常是多人游戏模式。首先,需要制作背景精灵。然后为第二个玩家复制它们。你需要两个变量:一个用于玩家1的滚动变量,一个用于玩家2的滚动变量。需要复制玩家一和玩家二,以便它们可以在分屏的两侧都可见。

在创建了角色的造型之后,在玩家1的脚本区域中插入以下脚本或类似的脚本:

图7

然而,这个脚本将根据舞台的颜色和其他元素而有所变化。

然后复制之前看到的脚本,并将其插入到玩家2的脚本区域中。需要更改所使用的变量和按下的箭头键。

在玩家1的脚本区域的副本(将出现在分屏的另一半中的精灵)中,复制此脚本:

8.png
8(1).png

在玩家2的副本中放置完全相同的脚本,只是使用(玩家2的y位置)而不是(玩家1的y位置)。

对于玩家1的地形,可以使用与传统方法完全相同的方法,只需使用玩家1的滚动变量。对于玩家2,也是如此,只需使用玩家2的滚动变量。

单个项目中的两个地形

在单个项目中可以拥有两个滚动地形。这与“不重复使用精灵进行滚动”的方法相同,只是需要为每个地形使用2个变量。可以在这里找到一个示例。

一个精灵一个脚本的方法

一个精灵一个脚本的滚动是高级的滚动方式,只使用一个精灵进行滚动。可以在这里找到一个示例Scratch项目。

图9

旧的y变量必须以与y位置相同的量进行更改。

从上向下滚动

从上向下滚动是指从顶部视角查看的滚动,通常使用x和y轴滚动。任天堂的一些示例包括早期版本的马里奥卡丁车(或任何DS设备上的游戏的底屏幕)和早期版本的塞尔达(或DS/Gameboy塞尔达游戏)。

可以在这里找到一个示例Scratch项目。

使用重复精灵进行滚动

这种滚动方法通过在一个位置上盖章,切换到下一个造型,并在另一个滚动位置上盖章来重复使用滚动对象。重复这个过程,直到达到所需的滚动距离。

图10

Y轴滚动

屏幕也可以在y轴上垂直滚动。首先,创建一个名为scrolly的变量。设置精灵的位置与水平滚动时的方法类似,只是数字480需要更改为360,并使用setyto。

这可以与水平滚动结合使用,同时水平和垂直滚动。

滚动文本

滚动文本主要不用于游戏目的。它使文本从屏幕上滚动出去,同时另一个文本从上方出现。例如,可以用于在项目末尾放置制作者名单。制作它的方法如下:

图11

其他方法

在Scratch中有许多创建滚动精灵的方法。将使用的方法是仅使用2个脚本的方法。它们非常简单,功能良好。首先,需要一个地图和一个玩家。在玩家精灵中,使用以下代码:

图12

接下来,为了使地图能够像玩家一样四处移动,需要使用地图的以下脚本:

图13

标签: Scratch, Scratch编程, Scratch中国, 少儿编程, Scratch社区, Scratch编程社区, Scratch编程课程, Scratch编程教程