0
我在某個位置繪製了一個圓。我可以在速度設置爲10f的情況下移動它,但是當它開始循環時,它變得非常快。它顯然不動(單位/秒),我不知道發生了什麼。我認爲archSpeed
需要弧度或其他東西,減慢它 - 但仍然不正確。 這裏的圓弧式,我立足關中:圓弧方程 - 理解速度?
s = r * theta
下面是我使用的功能:
private void moveOut(double deltaTime)
{
SetPosition(x += direction * speed * deltaTime, y, 0);
if (x - (direction * GetWidth()/2f) >= centerX + radius + GetWidth()/2f)
{
//onOutside = true;
}
Log.d(TAG, "moving out");
}
private void circleCenter(double deltaTime)
{
float angleSpeed = (float) (radius * (speed * Math.PI/180) * deltaTime);
currentAngle += angleSpeed;
if (currentAngle >= 2 * Math.PI)
{
currentAngle = (float) (2 * Math.PI - currentAngle);
}
SetPosition(centerX + radius * FloatMath.cos(currentAngle), centerY + radius * FloatMath.sin(currentAngle), 0);
}
好的,謝謝 - 應該包括單位。 –