我正在制作一款类似Zelda的2D横向游戏,担心如何让敌人移动到他们的目标,以确保最佳的游戏体验,尤其是在攻击范围、撞击外接盒和伤害外接盒方面。

我的实体已设置好如此:它们的原点位于脚部,该设置应允许y排序工作正常。

设置如下所示:黄色圆圈是地形冲突区域,蓝色胶囊是伤害外接盒,红色矩形是攻击.hitbox。

https://imgur.com/a/U6OUatC

现在,当移动敌人实体到目标时,很多教程似乎只移动实体原点指向目标原点。

设想一下,您有一个更大的敌人(右边)以水平方式向左边的玩家(玩家)靠近像以下图像所示那样。

https://imgur.com/a/Ni4Kowg

玩家和敌人之间沿y轴有相当大的差别,玩家和玩家之间的伤害外接盒和敌人攻击.hitbox。因此,当沿y轴移动时,向下移动意味着可以更快地超出攻击范围,而不是向上移动。(当然,您也可以向左移动。)

类似的问题似乎也发生在比较击中范围时,从上下攻击:

https://imgur.com/a/2eu9NMb

在攻击动画和场景视角方面,相较于实体原点的放置方式可能会有所不同,以使动画可以视觉上对齐。这意味着玩家也可以对正下方的敌人发动攻击,而无法碰到位于正上方的敌人。

如果从.hitbox到原点的距离在上下移动时不同,也可能会复杂化攻击范围内移动。

通常我尝试通过为每个实体指定一个“中心位置”,该中心位置约为实体的视觉中心或伤害外接盒的中心,从而实现此目的。  .hitbox 会围绕这个中心位置旋转。

实体尝试将中心位置移动到目标中心位置。

https://imgur.com/a/jgprWiV

然而我不确定这是解决这个问题的最佳方法,还是有其他问题。同样,未让实体当水平向目标移动时让其足部水平排列也可能有所不同。

或许我只是过于陷入沉思而使问题过于复杂了。

在2D横向游戏中,有什么最佳实践来提供最佳的攻击范围、hitbox和移动到目标的感觉?

在 2D 横向游戏中,如果要实现最佳的攻击范围、hitbox 和目标的移动感觉,应该怎样做才是正确的做法呢?