1

我有一个有限大小的二维向量场。我想要的是在这个字段中找到任何“循环”——也就是说,如果这个字段代表流体的流动,并且你将一个对象放在这些循环中的一个上,那么这个对象会转来转去,永远不会出现休息。我想我已经找到了一些关于这个问题的学术数学文章,但它们离我太远了,我无法理解它们。是否有找到此类循环的标准算法?

为什么我要找到这样的循环?我正在考虑制作一个与《超级马里奥银河》具有相似概念的 2D 平台游戏,因为会有几个小的引力体可供玩家在其间跳跃和行走,而不是单一的全局重力矢量。静态物体的重力场将在关卡编辑期间静态计算。我真的不需要解决这个问题,但它会是一个非常好的工具,可以在关卡编辑器中检测不可避免的重力循环,而不必通过游戏测试来发现它们。

4

1 回答 1

0

很难想象一个包含循环的“重力场”。但是,玩家的轨迹可能是循环的。我们称之为“轨道”。

一个简单的解决方案可能是包括少量的摩擦或阻尼,以确保轨道衰减。

一个不太容易处理的解决方案:如果空间是离散的,那么您可以测试每个状态(位置、速度)并检查玩家是否会重新访问相同的状态。请注意,这也需要有限数量的合法速度值。

从可用性的角度来看,给玩家一些推进手段也是解决问题的好方法。

于 2011-12-24T07:18:07.770 回答