1

ゲームでプレイヤーの動きに問題があります。このゲームは、W、A、S、D でプレイヤーの位置を制御するトップダウン シューティング ゲームです。マウスを動かすことで、プレイヤーの向きを制御したいと考えています。

マウスを追跡するには mouseMoved メソッドを使用する必要があることはわかっていますが、角度の計算と実際の画像の回転の両方で迷っています。

画像は基本的に、銃が突き出ていることを表すために黒い線が入った円です。

どんな助けでも大歓迎です!

4

1 に答える 1

2

プレーヤーとマウスの座標を使用して角度を計算できます。

float angle = (float)(Math.atan2(player.y - mouse.y, player.x - mouse.x));

これにより、ラジアンで角度が得られます。

次に、オブジェクトを描画しているとき:

AffineTransform reset = new AffineTransform();
reset.rotate(0, 0, 0);
Graphics2D g2 = (Graphics2D)g;
g2.rotate(angle, player.x, player.y);
//draw the image here
g2.setTransform(reset);
于 2013-05-29T21:59:12.830 に答える