第 4 部分:创建你的玩家
在第 3 部分中,你学会了如何创建第一个关卡。在本教程中,我们将开始把空关卡变成一款游戏。
平台游戏是一种类似《马力欧》的游戏。通常,平台游戏会有一个可通过操纵杆控制的角色,玩家可以让角色跳来跳去,解开各种谜题。
本指南的这一部分将在第 3 部分的基础上展开,并假设你已经使用 Platformer Starter Pack 中的素材创建好了关卡。你可以从 Asset Shop 下载该素材包。
添加玩家:
首先,你需要将玩家图像添加到对象栏。先在资源库中打开 Downloads 文件夹,找到动画角色 Green Space Man Character。
在资源库中点按这个动画角色,即可查看所有可用的动画循环。
我们不希望玩家站着不动时看起来还在走路,所以要使用“Stand”动画循环。点按“Stand”动画循环,将其添加到对象栏。
**注意:**如果你使用的动画图像没有站立或待机动画循环,也可以用手指按住动画循环,然后在资源菜单中选择“View Frames”,从中选取单帧。
现在角色已经在对象栏中了,你只需将它从对象栏拖到场景中。
移动玩家:
现在,我们要让角色动起来,并能够通过操纵杆移动。hyperPad 内置的行为让这个过程变得非常简单。
首先,点按刚拖到画布上的角色,打开对象属性。
在对象属性的“Physics Tab”中,点按“Behaviors”按钮正下方的物理对象图标( ),将角色设为“Physics Type”。
**注意:**物理对象会遵循重力定律,并对其他对象和力产生反应。
接下来,点按“Behaviors”按钮,打开行为编辑器,开始让角色变得可玩。
行为编辑器顶部栏中显示了不同类别,左侧列表中则显示该类别下的行为。
由于你添加了一个动画循环,画布上已经自动添加了“Play Animation”行为。
从“interaction”类别中,将“Joystick Controlled”行为拖到画布上。
添加此行为后,系统还会自动在你的 GLOBAL UI Layer 上创建并添加一个操纵杆。如果你已经在 UI 图层上添加了操纵杆,此行为会自动使用现有操纵杆,而不会再添加一个。
现在,你可以按下播放按钮运行游戏了!不过你可能会发现,玩家只是在屏幕上滑来滑去……
动画:
我们来为玩家添加一些动画,让游戏看起来更出色。
首先,让角色在你向左或向右移动操纵杆时行走。
要做到这一点,你需要查看“advanced”交互行为。在“Interaction”类别中,点按行为列表底部的“Advanced”选项。
在“advanced”列表中,将“Joystick Left”和“Joystick Right”添加到画布上。
接下来,从“FX”类别中添加“Play Animation”行为,并将“Joystick Left”和“Joystick Right”都连接到这个新添加的“Play Animation”行为。
现在,点按“Play Animation”行为,查看行为属性。
顶部的第一个框用于选择要应用动画的对象。hyperPad 会自动选择当前对象。
**注意:**如果需要,你可以点按此处,选择场景中的其他对象。现在我们不需要这么做,因此保持原样即可。
下面的框用于选择要播放的动画。由于还没有选择动画,这里是空白的。
点按空白框来选择动画。
请注意,屏幕底部会出现一条胶片带。点按资源库图标,将动画循环添加到胶片带中。
找到动画角色“Green Spaceman”,然后选择“Walk”循环。请注意,动画的每一帧都已自动添加到胶片带中。点按任意位置关闭胶片带,返回属性页面。
**注意:**你也可以将单张图像或动画帧添加到动画胶片带中,并不局限于预先创建好的动画循环。
接下来,在 Walk 动画行为属性中关闭“Loop Animation”开关。我们要关闭这个开关,因为“Joystick Left”和“Joystick Right”行为会为我们循环播放动画:只有操纵杆向左或向右时,动画才会播放。
最后,我们来重命名这个行为,以便之后更容易找到它。在行为属性中,点按最上方的行为名称。屏幕会弹出键盘,你可以输入新的行为名称。我们将它命名为“Walk Animation”。
现在按下播放按钮,角色应该就能在操纵杆的控制下移动并播放动画了!
跳跃:
平台游戏当然少不了跳跃!在 hyperPad 中,让玩家跳跃非常简单。
仍在 Green Spaceman 的行为编辑器中时,点按“Interaction”类别,然后从左侧行为列表中将“Jump with Button”行为拖到画布上。和“Joystick Controlled”行为一样,“Jump with Button”也会帮你处理对象的许多移动操作,并自动在 Global UI Layer 上添加一个按钮。
点按跳跃行为可以查看其属性。在跳跃行为属性中,你可以更改要播放的音效、跳跃力度等设置。本教程中,我们保留其他所有设置,只更改跳跃力度。
为了让角色跳过第 3 部分所创建关卡中的所有障碍,我把跳跃力度设为 18。如果你设计了自己的关卡,可能需要调整跳跃力度,直到效果符合预期。
现在按下播放按钮,就能看到玩家跑动和跳跃了。不过你可能注意到了,角色在空中跳跃时仍然会继续走路……我们来解决这个问题!
先让角色在跳跃时播放动画。
在“Interaction”类别中添加“Started Touching”行为,然后点按刚添加的行为以查看其属性。
现在,我们需要更改此行为,让它只在开始触碰跳跃按钮时生效。在“Started Touching”行为属性中,点按顶部框中的太空人图像。
这会打开“Object Selector”屏幕。在这里,你可以选择场景中的任何对象或 UI 元素。你可能无法选中这个按钮,这是因为 Green Spaceman 位于 Main Layer,而按钮位于 Global UI Layer。只需在屏幕右侧的图层栏中点按“Global UI”图层即可。现在你就能选中按钮了。
选中按钮后,点按底部的确认图标。
接下来,再添加一个“Play Animation”行为,并将它连接到我们之前添加的“Started Touching”行为。
和之前一样,你可以重命名这个行为,并在行为属性中选择动画。
要重命名,请在对象属性中点按行为标题,然后输入新名称。我将它命名为“Jump animation”。
和设置行走动画时一样,你需要为跳跃选择一个动画循环。点按行为属性中的第二个空白框,然后从 Green Spaceman 的可用动画中选择 Jump 动画循环。
你还需要关闭“Loop Animation”和“Restore Frame”开关。
现在按下播放按钮,跳跃时角色看起来就像在跳跃了!不过还有两个小问题需要解决:
- 角色落地后不会恢复站立动画。
- 如果角色在空中移动,就会在空中播放行走动画。
针对第一个问题,切换到“Transform”行为类别,然后点按 advanced 按钮,查看高级行为。
现在,将“Stopped Falling”行为拖到画布上,再从 FX 类别中拖入另一个“Play Animation”行为,并将它连接到“Stopped Falling”行为。
对于刚添加的“Play Animation”,选择 Green Spaceman 的“Stand”动画循环,关闭“Restore Frame”和“Loop Animation”开关,并将“Play Animation”行为命名为“Standing”。
现在,Green Spaceman 应该可以跳跃,并在落地时恢复站立状态。
针对第二个问题,我们需要阻止角色跳跃时播放行走动画。
切换到“Custom”行为类别,拖入“Behavior Off”行为,并将它连接到之前为跳跃动画添加的“Started Touching”行为。
现在点按“Behavior Off”,再点按空白框,从列表中选择一个行为。在列表中找到连接到“Joystick Left”和“Joystick Right”行为的“Play Animation”(Walk Animation)行为。
接下来添加“Behavior On”行为,并将它连接到之前添加的“Stopped Falling”行为。
再次点按空白框,选择播放行走动画的“Play Animation”(Walk Animation)行为。
现在按下播放按钮,角色应该就能顺畅地移动和跳跃了!
移动屏幕:
你可能已经注意到,如果角色移动得太远,就会跑出屏幕。在传统的平台游戏中,屏幕通常会跟随玩家移动。以马力欧为例,马力欧通常会一直待在屏幕中央附近(位置会略有变化)。
我们来让屏幕跟随 Green Spaceman 移动,这样他就不会跑出屏幕了。
仍在 Green Spaceman 的行为编辑器中时,切换到“Screen”类别,然后添加“Screen Follow”行为。“Screen Follow”行为会让屏幕跟随你选中的对象移动。
接下来,打开“Screen Follow”的行为属性,关闭“Follows Y”开关。这样屏幕就会跟随玩家左右移动,但不会上下移动。
现在按下播放按钮,你应该就能操控播放动画的角色跑过关卡,同时屏幕也会跟着移动。
你可以从 Hub 下载第 4 部分的完成版本,看看所有内容实际运行的效果。
在第 5 部分中,我们将添加更多游戏元素,例如可拾取的金币和分数。

