角度(度)に基づいて弾丸を動かす方法を理解しようと、かなり長い時間を費やしました
ラジアンを次のように定義します。
public static double toRadians(int angle) {
return (90.0 - angle) * (Math.PI / 180);
}
これが実際に弾丸を動かすコードです。xMov と yMov は負になることがあり、ティックごとに現在の位置に追加されます。
ラジアンを実際に使用したことはありませんが、上記のコードで北を 0、東を 90 などにすることができました。これは私が望むものです。弾丸が正しい方向に進まない理由がわかりません。X は正しいように見えますが、Y は正しくありません。
double x= Math.cos(Utilities.toRadians(mvmtAngle));
double y= Math.sin(Utilities.toRadians(mvmtAngle));
xMov += x* 4;
yMov += y* 4;
ありがとう!- チップ
編集:度は細かく設定されています(入力から)
編集 2: レンダリング コード:
((Graphics2D)g).rotate(Utilities.toRadians(barrelAngle), xStart, yStart);
g.fillRect(xStart - 1, yStart, 2, BARREL_SIZE);
((Graphics2D)g).rotate(-(Utilities.toRadians(barrelAngle)), xStart, yStart);