0

我有一个汽车对象,我希望它逐渐旋转到用户单击的方向。

每一帧我都会做数学计算来计算它需要的新方向,并将其存储在 car.direction 中。实际的方向当然是在 car.rotation 中。

现在我想每帧更新旋转,直到它等于方向。但是,我尝试了一切,但不知道该怎么做。

顺便说一句,我正在使用 FireFly,这是一个建立在 Starling Framework 之上的游戏引擎,但我认为它不相关。

4

1 回答 1

1

我会接受 Marty 的建议,使用 minimumAngle 函数来确定应该旋转的方向。基本上,您可以在每次帧更新期间移动一些最小角度的百分比,直到该最小角度的百分比低于某个阈值(并让它在剩下的过程中“捕捉”)。

就像是

//each time this is called it will get 1/4 closer, but never get to 0, hence the need for a threshold avoid paradoxes
//http://en.wikipedia.org/wiki/Zeno's_paradoxes#Dichotomy_paradox
var angleToMove:Number = smallestAngle()/4; //the divide by 4 here means get 1/4 of the angle gap closer each time this function is called, I assume this is on a timer or frame handler, making the 4 greater will make it follow more slowly, making it lower will make it follow more quickly, never reduce to or below 0 unless you want wonkiness
if(angleToMove<someRadianThreshold)
    angleToMove = smallestAngle();
//use angleToMove to adjust the current heading/rotation
于 2013-06-18T00:46:28.330 回答