对齐网格命令

你有没有考虑过创建一个类似BAz为PGM制作的Snap_to_grid插件那样的命令?如果能有一个这样的命令,比如可以将对象居中对齐到楼梯的网格上,从而避免大量计算,那将非常棒。该插件还允许你根据需要调整X和Y方向的像素值。你可以在这里找到插件的作者,还等什么呢?:smiling_face_with_sunglasses:

1 个赞

哈哈,我会去查一下!

1 个赞

尝试运行此脚本,并在需要时使用 InvokeScript 调用它。还附带了一个调试系统,如果需要,可以可视化显示。也支持等距瓦片!

snap_to_grid.gd (8.3 KB)

使用方法:

  1. 将 .gd 文件放入您的项目中
  2. 在您想要吸附的物体上创建一个 Node2D,并将脚本附加到它上
  3. 在检查器中进行设置,以告知脚本要吸附的对象、吸附类型、瓦片大小等
  4. 使用 InvokeScript 动作来调用 snap_to_nearest_grid

1 个赞

非常感谢你的努力。我已经测试过了,这是我的结论。在尝试了几个项目后,我得出的结论是,该脚本在俯视角游戏中工作正常,但在横向卷轴游戏中表现不佳,因为它试图将角色“埋”进地面,导致屏幕剧烈抖动,非常烦人。尝试通过Y参数来修正也未能正确解决问题。我认为问题在于它试图同时在X轴和Y轴上居中,导致角色被埋入地面,而碰撞检测又试图阻止这种情况。我认为一个解决方案是提供一个选项,允许分别在X轴和Y轴上居中,让用户可以选择在X轴、Y轴或两者上居中。我不确定精灵的大小是否也起作用 :thinking: … 无论如何,这样的命令应该被集成并能在引擎中正常工作。再次感谢你的努力,BAZ。

(附注:希望我说的能大致被理解,因为我是用谷歌翻译翻译成英文的 :P)

好吧,我擅自修改了脚本,经过一段时间与AI的挣扎,我成功添加了仅在x或y方向移动的选项。问题似乎出在Godot如何处理AnimatedSprite2D的物理特性上。经过多次尝试和修正,消除了角色位置改变时出现的鬼影现象,现在似乎可以正常工作了。但正如我之前所说,这应该是一个引擎命令,因为如果我们继续走这条路,很多功能都会通过脚本实现,而不是使用原生引擎命令,我认为这不符合这些引擎的设计理念。此外,还会有一些用户甚至不知道这些解决方案的存在。

snapto_grid2.zip (2.1 KB)

我还修改了选项,使其可以同时吸附到x和y轴,或仅吸附到x轴或y轴。

我无法复现你遇到的AnimatedSprite2D问题(这个示例使用了它),所以如果你能进一步说明如何复现这个问题,我可以调查一下原因。

我理解这应该默认就可以实现,但既然我们可以在等待官方解决方案(目前已被报告)的同时快速制作一个临时解决方案,这是一件好事。用户会像过去发现所有RPG Maker插件一样,找到这些解决方案。

snap_to_grid.gd (8.3 KB)

1 个赞

现在正常了,谢谢!:slightly_smiling_face:

1 个赞