在 ACTION GAME MAKER 中,每个状态都配备了“显示方向”系统,可根据对象的朝向播放相应的动画。
本手册将介绍如何控制显示方向。
有关设置显示方向的动画集手册,请参阅:マニュアル: アニメーションセットの詳細設定
显示方向系统概览
显示方向可设置为 8 个方向。
显示方向的设置
显示方向可在各状态的“显示方向”中进行更改。此外,通过 FaceDirectionSettings 节点设置的“视线方向”,还可实现更精细的控制。
各状态的“显示方向”设置
显示方向可从以下选项中选择设置:
- 移动方向:始终与当前移动方向同步。
- 移动键方向:始终与对象所设定的移动键输入方向同步。
- 右/左:始终面向右或左方向。
- 使用 FaceDirectionSettings:面向后文所述 FaceDirectionSettings 节点中设定的视线方向。
设定的显示方向将在同一状态期间保持不变。
FaceDirectionSettings 节点(视线方向设置)
用于指定“视线方向”的节点,需作为对象的子节点放置才能生效。FaceDirectionSettings 支持以下设置:
- 移动方向:始终与当前移动方向同步。
- 移动键方向:始终与对象所设定的移动键输入方向同步。
- 不更改(Free):除非通过动作或脚本更改,否则不改变显示方向。
- 指定对象的方向:面向指定对象的方向。
- 指定组:面向最近的指定组对象的方向。
FaceDirectionSettings 的各项设置也可通过执行动作“更改对象属性(ChangeObjectProperty)”进行修改。
视线方向(FaceDirection)与显示方向(DisplayDirection)是不同的变量,但如前所述,可在各状态的显示方向设置中选择“使用 FaceDirectionSettings”,从而将视线方向作为显示方向使用。
执行动作“更改视线方向(ChangeFaceDirection)”
可更改视线方向。请注意,这仅更改视线方向,而非显示方向。因此,若状态的显示方向设置为“使用 FaceDirectionSettings”,且 FaceDirectionSettings 设置为“不更改(Free)”以外的选项,则更改后可能立即被覆盖,请务必注意。
“更改视线方向(ChangeFaceDirection)”支持以下设置:
- 角度:以右方向为 0 度,按 360 度指定。
- 方向:直接从 8 个方向中选择。
- 变量:以变量值作为度数指定方向。
- 移动方向:面向执行时的移动方向。
- 指定对象:面向指定对象的方向。
显示方向与显示方向变量(visible_direction)
visible_direction 变量以 45 度为单位显示当前朝向,例如:右为 0 度、右下为 45 度、下为 90 度等。此变量仅为方便起见,将当前朝向以变量值形式表示,直接赋值给该变量不会产生任何效果。因此,若需根据当前方向更改朝向,可按以下步骤实现:
- 将 visible_direction 变量赋值给另一变量 A。
- 将希望更改的角度值加到变量 A 的值上。
- 使用“更改显示方向(ChangeFaceDirection)”动作,根据变量 A 的值更改显示方向。
显示方向的应用示例
类似马里奥的滑行移动
在 MoveAndJumpSettings 中将移动模式设为“加速”,并将显示方向设置为“移动键方向”,即可实现类似马里奥的反向刹车滑行移动。
不伴随移动,仅朝向任意摇杆方向
通过 ChangeAngleSettings 和“朝向指定组方向”实现:
- 在 GameObject 下添加 Node2D 节点,并重命名为 TargetRoot。
- 在 TargetRoot 节点下再添加 Node2D 节点,并重命名为 Target。
- 在 Target 节点的 Inspector 中,将位置设为 x=100, y=0。
- 为 Target 节点添加任意名称的组。
- 在 GameObject 下添加 ChangeAngleSettings。
- 在 ChangeAngleSettings 的 Inspector 中,启用“使用右/左摇杆”,并将目标节点设为 TargetRoot。
- 在 FaceDirectionSettings 中设置为跟随 Target 节点所指定的组名称,即可完成。
【原理说明】
ChangeAngleSettings 节点会根据摇杆方向旋转 TargetRoot 节点。由于 Target 节点位于 TargetRoot 节点原点右侧,当 TargetRoot 旋转时,Target 会绕圈旋转。FaceDirectionSettings 跟随做圆周运动的 Target 节点,从而实现朝向摇杆方向。
朝向鼠标光标方向
首先创建用于鼠标光标的对象:
- 创建新游戏对象,使用模板 GDScrip_sample,类型选择 SimpleCursor。
SimpleCursor 是一个始终跟随鼠标位置的脚本节点。 - 保存 SimpleCursor,并将其放置在游戏场景的 UI 层。(若放置在普通层,可能受偏移等影响。)
- 在 FaceDirectionSettings 中设置目标节点为 SimpleCursor,使其跟随鼠标光标。
【备注】
前一项“不伴随移动,仅朝向任意摇杆方向”中,若在 ChangeAngleSettings 中启用“使用鼠标”,也可实现相同效果。