在 ACTION GAME MAKER 中,Tile Effects(瓦片效果)中的 Area Value(区域值)会自动更新任何接触或重叠该瓦片的对象的 stayed_area_id 变量。
这意味着您可以在瓦片上预定义值,使对象能够识别当前正在交互的瓦片类型。
了解更多关于 Tile Effects 的信息:
请确保在 GameObject 中已启用“启用瓦片效果”,并且瓦片效果指定了正确的目标组。
创意:穿透平台
允许玩家在按住向下键时,通过暂时禁用碰撞来穿过特定的平台瓦片。
瓦片设置
- 选择一个用作穿透平台的瓦片。
- 将检测模式设置为“接触”,并分配目标组。
- 启用 Area Value 并设置自定义 ID(例如
10)。
- (可选)在
Physics > Physics Layer > Polygon下启用单向碰撞,并将方向设置为向上,使其仅从上方阻挡。
从上方下落由对象侧处理。
对象设置
- 打开目标对象(例如玩家)的 Visual Script。
- 创建一个名为“PassThrough”的新状态。
- 添加从 Idle/Standing 到此新状态的转换,条件如下:
- 变量
stayed_area_id == 10且 按下向下输入。
- 在“PassThrough”状态中,添加以下操作:
- 禁用对象的墙壁碰撞(CollisionShape2D >
disabled = true) - 等待 0.3 秒。
- 重新启用墙壁碰撞(
disabled = false)
- 0.3 秒后,转换到下落状态。
结果:当站在指定瓦片上并按下向下键时,玩家会暂时失去碰撞并穿过平台。
如果下落感觉迟缓或不一致,请尝试增加等待时间。
您也可以使用 AnimationPlayer 通过关键帧控制碰撞的开关——只需确保在切换状态前恢复碰撞即可。
创意:攀爬梯子
类似的概念:当位于特定瓦片(梯子)上时,按下向上键可通过禁用重力并向上移动来实现攀爬。
瓦片设置
- 选择一个用作梯子的瓦片。
- 将检测模式设置为接触,并分配目标组。
- 启用 Area Value 并设置自定义 ID(例如
20)。
对象设置
- 打开目标对象的 Visual Script。
- 创建一个名为“Climbing”的新状态。
- 当满足以下条件时,添加从 Idle 到“Climbing”的转换:
stayed_area_id == 20且 向上输入刚刚按下(以避免持续攀爬)
- 在“Climbing”状态中:
- 禁用重力。
- 使用沿指定方向移动操作向上移动(270° 方向)。
- 如果满足以下条件,添加从“Climbing”到停止/下落状态的转换:
stayed_area_id != 20或- 未检测到输入。
结果:在梯子附近按下向上键开始攀爬;松开或到达顶部时停止攀爬。
如果攀爬永不停止,请确保触发条件基于“刚刚按下”,而不是“正在按下”。
在梯子顶部放置一个单向瓦片或碰撞形状以便站立。
若要中途暂停,创建一个禁用重力的停止状态,并在再次按下向上键时允许重新进入攀爬状态。

