私は現在、原点で私の物体が回転して3つの象限内のオブジェクトに移動することができるようになります私のオブジェクトが別のobject.currentlyそれがこの絵のように正常に動作に直面して回転させるとのトラブルを抱えています正の90度から180度の象限を除いて、私のオブジェクトはオブジェクトに移動している間、何回か全回転を何回か回転させます。食品がのAdobe Flash CS4回転数学
var angle:Number = Math.atan2(foodTarget.y - y, foodTarget.x - x);
foodLocationDegrees =Math.floor((angle * 180/Math.PI));
Yを用いて計算した魚である対象であるX、および食品の対象となるfoodtargetされるiが回転するために使用する文はrotation += (foodLocationDegrees - (rotation - 90)) * .2;
あります。
public function moveToFood():void
{
var dx:Number = x - _destinationX;
var dy:Number = y - _destinationY;
trace("Food location degree relative to fish mouth "+foodLocationDegrees);
var targetRotation:Number = 0;
if (foodLocationDegrees > 0 && foodLocationDegrees < 90)
{
trace("food is on 1st quadrant of the fish mount");
this.x -= dx/18;
this.y -= dy/18;
}else if (foodLocationDegrees > 90 && foodLocationDegrees < 180)
{
trace("food is on 2nd quadrant of the fish mount");
this.x -= dx/18;
this.y -= dy/18;
}else if (foodLocationDegrees > -180 && foodLocationDegrees < -90)
{
trace("food is on 3nd quadrant of the fish mount");
this.x -= dx/18;
this.y -= dy/18;
}else if (foodLocationDegrees < 0 && foodLocationDegrees > -90)
{
trace("food is on 4nd quadrant of the fish mount");
this.x -= dx/18;
this.y -= dy/18;
}
trace("Before adding Rotation " + rotation);
var number:Number = (foodLocationDegrees - (rotation - 90)) * .1;
trace("rotation to add "+number);
rotation += (foodLocationDegrees - (rotation - 90)) * .2;
trace("After adding Rotation " + rotation);
//removing food when both hit boxes hit
if (hit.hitTestObject(foodTarget.hit))
{
foodInPond--;
foodTarget.removeSelf();
}
}
PS私の知識は、私は数学を学んで努力をしていない、と数式がここで尋ねた答えと私の部分の数字をいじりのビットからつなぎ合わせているように、私を許してください、非常に弱いです。 – sutoL