ACTION GAME MAKER 中的瓷砖效果“区域变量(Area Value)”是一项功能,它会自动更新所接触对象的变量以及当前区域 ID(stayed_area_id)。
换句话说,通过在瓷砖端预先进行指定,对象可以识别当前正在接触(或重叠)的瓷砖 ID 是多少。
关于瓷砖效果,请参阅:
正如手册中所述,请注意:希望接收效果的对象的 GameObject 必须启用瓷砖效果,且在瓷砖效果侧必须指定目标组。
可穿透平台的创意
针对特定的区域变量,如果实现“按下下方向键时暂时禁用碰撞”的处理逻辑,即可实现仅穿透特定的平台瓷砖。
瓷砖端设置
- 准备要用作平台的瓷砖。
- 将判定设为“接触”,并指定组。
- 启用平台的区域变量,并设置任意值。
- (可选)在 Physics > Physics Layer > Polygon 中启用单向通行(OneWay),并将方向设为“上”,即可实现从下往上可穿透的设置。
- 瓷砖端的设置至此完成,从上往下的穿透需在对象端进行设置。
对象端设置
- 打开要设置的对象的可视化脚本。
- 创建一个新的用于穿透的状态。
- 从待机动作到新状态的转换条件设为:自身变量 Area_id 等于指定值 且 检测到下方向输入。
- 在新状态中设置三个动作,通过“修改自身属性”实现:
① 将墙壁判定(CollisionShape2D)的禁用(Disabled)属性设为启用。
② 插入 0.3 秒的等待。
③ 将墙壁判定(CollisionShape2D)的禁用(Disabled)属性设为禁用。
通过此设置,墙壁判定将在 0.3 秒内消失,对象将顺应重力穿透平台并下落。 - 从新状态出发,设置为经过 0.3 秒后转换至下落动作。
通过上述设置,即可实现在仅站在特定平台瓷砖上时,按下下方向键即可穿透的功能。
- 如果穿透受阻,请尝试调整等待时间并延长它。
- 如果制作专门的穿透动作,也可以在动画播放器的关键帧中执行墙壁判定的禁用/启用处理。此时请注意,务必确保在启用处理完成前不要进行状态转换。
梯子的创意
大体上与平台创意相同。
针对特定的区域变量,通过设置“按下上方向键时禁用重力,使角色向上攀爬”即可实现。
瓷砖端设置
- 准备要用作梯子的瓷砖。
- 将判定设为“接触”,并指定组。
- 启用平台的区域变量,并设置任意值。
对象端设置
- 打开要设置的对象的可视化脚本。
- 创建一个新的用于攀爬梯子的状态。
- 从待机动作到新状态的转换条件设为:自身变量 Area_id 等于指定值 且 刚刚检测到上方向输入。
- 在新状态中,禁用重力。在此基础上,通过动作“向指定方向移动”指定向上方向(270 度方向)进行移动。
- 从新状态出发,转换条件设为:自身变量 Area_id 不等于(!=) 指定值 或 无输入。
通过上述设置,只要按住上方向键就会向上攀爬,一旦松开输入或到达顶点导致 Area_id 变为其他值,上升就会停止。
- 如果将新状态的转换条件设为“正在按住上方向键”,则松开前会无限上升。
- 在梯子顶端放置设置了单向通行的瓷砖,或单独设置 CollisionShape2D,即可在爬完梯子后自然地站立。
- 如果想在梯子中途停止,可以准备一个禁用了重力的停止状态,并将其与新状态连接。若需通过上方向键重新开始,可返回新状态;若需取消,则转换至 Fall 状态,这样动作会更加自然。

