如何实现怪物以某个坐标为中心点小范围随机移动(不能穿 怪)



  • 如何实现:
    1.怪物以某个坐标为中心点小范围随机移动,超过范围回到中心点。
    2.在移动过程中同样的怪物相互碰撞后停止移动重新随机移动。(不能穿 怪)
    3.多个怪对目标进行围攻,怪物不会出现卡住。(不能穿 怪)



  • @男神1987 简单说一下自己的思路:
    第一个的话直接把中心点坐标写给怪物的实例变量,然后判断怪物和自己这个中心点坐标变量的距离是否超过范围距离(或者用视线能力判断这个点在不在视线中),来判断范围内和范围外两种状态即可,随机移动可以用移动到位置,然后目标点坐标填random中心点坐标+-范围距离值,然后触发条件可以是不在移动中时才触发,范围外时直接设置新的移动覆盖掉原来的移动(移动点目标设置在范围内)。
    第二个的话,可以直接给怪上刚体和八方向移动能力(禁用默认控制,仅用于怪和刚体互相挤开防止穿怪),因为移动动作有碰撞停止,碰撞后自然会重新触发第一个的自动移动,这里的问题在于只有这些需求的话,很容易出现几个怪挤在一起不动了,除非你的怪“领地分明”,才不太容易挤在一起的情况。
    第三个老实说很模糊,因为这个“围攻”的具体需求是不明确的,卡住的问题如上面所说,要简单做完全不穿怪的话,用刚体和八方向等移动能力的互相阻隔效果是最好的,但问题也在这里,移动的怪相当于一个移动的墙体,这种互相阻隔的效果其实是很不自然的,要做到最自然的互相“推搡”效果,最好的应该是物理能力,但是物理能力是会穿一部分的,但是只要有重叠,就会缓慢挤开,效果上是很自然的,但这个跟完全不穿怪这个需求是相违背的,而且物理能力不太适合跟其他移动一起使用(会相互覆盖效果,不容易控制),只适合用自身的移动,但自身的移动又不够方便,综合来看的话,只看你这些需求应该很难做到很自然的效果。



  • 虽然没有解决还是谢谢


登录后回复