if(sprite.status == 'moveBack')
{
var pointX:Number = mouseX + Math.cos(sprite.angle) * 100;
var pointY:Number = mouseY + Math.sin(sprite.angle) * 100;
dx = pointX - sprite.x
dy = pointY - sprite.y;
var angle:Number = Math.atan2(dy, dx);
var dist:Number = Math.sqrt(dx * dx + dy * dy);
if(dist < 1)
{
sprite.status = 'free';
}
else
{
sprite.x += Math.cos(angle) * 15;
sprite.y += Math.sin(angle) * 15;
}
trace(dist);
}
sprite.angle += 0.05;
これはコードの短いスニペットです。ここでは、スプライト オブジェクトの 1 つが以前の位置に戻ってきています。彼が来るポイントは毎回移動しています。問題は次のとおりです。私の速度が 15 ピクセル/フレームあたり、そして私のムービークリップは彼が来る終点に近く、残りの距離は20です。私の速度が15の場合、20 -15 = 5、次に5 - 15 = -5ですが、ピタゴールの式を使用しています距離は常に正であるため、スプライトは距離 0 に到達して自由になることはできません。この状況で何ができますか?