技巧:使用瓦片效果区域值 – 通行平台/梯子

在 ACTION GAME MAKER 中,Tile Effects(瓦片效果)中的 Area Value(区域值)会自动更新任何接触或重叠该瓦片的对象的 stayed_area_id 变量。

这意味着您可以在瓦片上预定义值,使对象能够识别当前正在交互的瓦片类型。

:blue_book: 了解更多关于 Tile Effects 的信息:

:warning: 请确保在 GameObject 中已启用“启用瓦片效果”,并且瓦片效果指定了正确的目标组


创意:穿透平台

允许玩家在按住向下键时,通过暂时禁用碰撞来穿过特定的平台瓦片。

瓦片设置

  1. 选择一个用作穿透平台的瓦片。
  2. 检测模式设置为“接触”,并分配目标组
  3. 启用 Area Value 并设置自定义 ID(例如 10)。
  4. (可选)在 Physics > Physics Layer > Polygon 下启用单向碰撞,并将方向设置为向上,使其仅从上方阻挡。

:downwards_button: 从上方下落由对象侧处理。

对象设置

  1. 打开目标对象(例如玩家)的 Visual Script。
  2. 创建一个名为“PassThrough”的新状态。
  3. 添加从 Idle/Standing 到此新状态的转换,条件如下:
  • 变量 stayed_area_id == 10 按下向下输入。
  1. 在“PassThrough”状态中,添加以下操作:
  • 禁用对象的墙壁碰撞(CollisionShape2D > disabled = true
  • 等待 0.3 秒。
  • 重新启用墙壁碰撞(disabled = false
  1. 0.3 秒后,转换到下落状态

:white_check_mark: 结果:当站在指定瓦片上并按下向下键时,玩家会暂时失去碰撞并穿过平台。

如果下落感觉迟缓或不一致,请尝试增加等待时间。
您也可以使用 AnimationPlayer 通过关键帧控制碰撞的开关——只需确保在切换状态前恢复碰撞即可。


创意:攀爬梯子

类似的概念:当位于特定瓦片(梯子)上时,按下向上键可通过禁用重力并向上移动来实现攀爬。

瓦片设置

  1. 选择一个用作梯子的瓦片。
  2. 将检测模式设置为接触,并分配目标组。
  3. 启用 Area Value 并设置自定义 ID(例如 20)。

对象设置

  1. 打开目标对象的 Visual Script。
  2. 创建一个名为“Climbing”的新状态。
  3. 当满足以下条件时,添加从 Idle 到“Climbing”的转换:
  • stayed_area_id == 20 向上输入刚刚按下(以避免持续攀爬)
  1. 在“Climbing”状态中:
  • 禁用重力。
  • 使用沿指定方向移动操作向上移动(270° 方向)。
  1. 如果满足以下条件,添加从“Climbing”到停止/下落状态的转换:
  • stayed_area_id != 20
  • 未检测到输入。

:white_check_mark: 结果:在梯子附近按下向上键开始攀爬;松开或到达顶部时停止攀爬。

如果攀爬永不停止,请确保触发条件基于“刚刚按下”,而不是“正在按下”。
在梯子顶部放置一个单向瓦片或碰撞形状以便站立。
若要中途暂停,创建一个禁用重力的停止状态,并在再次按下向上键时允许重新进入攀爬状态。