有没有办法在梯子的中间位置攀爬?

我参考了本教程,尝试制作了攀爬梯子的动作。

当角色与由图块构成的梯子重叠时,区域变量会发生变化,只有在检测到该区域变量时,按下向上键才能攀爬。

然而,使用这种方法时,如果角色在图块的边缘处触发攀爬动作,角色会在超出梯子范围的状态下继续攀爬,导致视觉效果非常不自然。

有没有办法在角色进入攀爬状态时,强制将角色移动到梯子的中心位置?如果能提供建议,我将不胜感激。


来自 AGMaker 的启动器「示例项目」

您可以试用 Ladder Sample 吗?

由于这是一个 16x16 像素的示例,您或许可以通过调整动作中的数值,使其适配您游戏所使用的图块尺寸。

※补充说明
从 AGMaker 1.3x 版本开始,引入了自定义动作功能,
我们还准备了简化繁琐动作的操作机制。
如果进展顺利,我们希望能在此处介绍专用于「抓梯子」的动作。

1 个赞

我有遇到类似的问题,我选用的方法是 物理对象建立“移动对象”这个动作去对准。

比如“梯子”是一个对象,player接触到梯子按上时触发 “移动对象”

在移动对象里设置 偏移 x和y 的中心点多少,这个根据你梯子的中心点去判定,
然后设定移动速度为 0秒到达,也就是瞬移

这样的话角色去到梯子按上时就会微妙的瞬移到梯子的中间部位。这样就完成了精准对齐的方法。

非常感谢。我按照示例,将项目中的瓦片尺寸进行了调整,虽然从“梯级检查”处成功分叉到了 X-,但始终未能分叉到 X+。

为了保险起见,我复制并粘贴了示例中的视觉脚本状态,仅修改了瓦片尺寸的数值,但依然没有分叉到 X+。

这可能与我的项目兼容性不佳有关,但示例中的状态包含非常复杂的指令。坦白说,我对计算不太擅长,因此很难理解其背后的机制。

谢谢!

如果将对象移动到其坐标位置,那么无论从梯子上的哪个位置访问,是否都会直接跳转到该坐标?

有没有一种方法可以在不改变Y坐标的情况下,仅修改X坐标?

好的,移动目标 X 和 Y 是独立的,所以移动哪一个都可以。

CA_LadderSnapAction.gd (5.2 KB)

已提供梯子吸附插件。
※请在备份项目后试用。
※此为 v1.3.x 及以上版本的功能。

■ 安装
下载 CA_LadderSnapAction.gd,并将其拖拽到≪文件系统≫的任意位置。

■ 操作
将其作为执行操作添加到状态“ladder check”中。


请注意,请根据您的项目调整瓦片尺寸(默认为 24x24)。

从 [ladder check] 到 [ladder_stay] 无条件允许。

1 个赞

非常感谢您特意制作。

我立刻试用了,结果发现其行为与重现示例状态时完全相同。看来可能是与我项目的某些配置存在兼容性问题。

在重现示例时,Xkeep 变量始终为负值,因此未分支到 X+ 状态,这似乎是问题的根源所在,确实比较棘手。

接下来,我会再综合考虑其他折中方案,仔细研究一下。

1 个赞

感谢您的回复。

您的意思是,当玩家接触到梯子时,会瞬间传送到梯子上设置的最近传送点,对吗?

如果玩家上下梯子的位置是固定的,那确实没有问题。但如果玩家可以在梯子上的任意位置接触梯子,并在下落途中或跳跃上升等过程中随时访问,这似乎会相当困难。您觉得呢?如果我的理解有误,敬请谅解。

你说得有道理,我这个方式只适用于固定位置的触发识别,无法做到自由的在中途变换接触点。看来这并不是一个好的选择

1 个赞

谢谢。如果使用对象,就可以使用可视化脚本,因此如果交互位置受到限制的话,似乎可以制作很多东西。