1

私はフラッシュゲーム、トップダウンビューシューターのようなものを作っています、そして私はステージにランダムに配置された敵がヒーローの方を向いて彼の方に動く必要があります。私がヒーローを動かすまで、これはすべてうまく機能しています。その後、私が動きを止めるまで、敵は手に負えないほどぐらつきます。以下に示すように、コードを簡略化しました。

stage.addEventListener(Event.ENTER_FRAME, moveMovie);
function moveMovie(event:Event):void{

movie1.x+= 5 * Math.cos(movie1.rotation);
movie1.y+= 5 * Math.sin(movie1.rotation);
movie1.rotation++;
}

回転してから動かして、動かしてから回転させて、動きと回転を別の機能に変えてみました。角度が大きすぎる場合にのみ回転し、1秒ごとに回転するだけですが、それでもぐらつきは続きます。私はこれを完全に間違っていますか?私がこれを実装しようとしたとき、それは十分に単純に見えました。

4

1 に答える 1

0

.rotationプロパティはで表されdegreesます。cosおよびsin関数は両方とも、radiansではなくを受け入れdegreesます。このようにしてみてください:

movie1.x+= 5 * Math.cos(movie1.rotation * Math.PI/180);
movie1.y+= 5 * Math.sin(movie1.rotation * Math.PI/180);
于 2012-06-25T12:36:42.953 に答える