私は、プレイヤーが中心点から時計/反時計回りに円を描く宇宙船を操作しながら、その点から発射物を発射するゲームに取り組んでいます。実際の配置が少しずれていて、回転が機能していませんが、すべてを書き込んでいます。
動きについては、私は持っています:
if (code==KeyEvent.VK_LEFT) {
trans.setToIdentity();
trans.translate(player.x-10, player.y-10);
player.moveLeft();
//trans.rotate(?)
System.out.println(player.x + " " +
player.y + " " + player.dX + " " + player.dY);
}
AffineTransformtrans
はplayer.moveLeft()
、プレーヤーの座標を円上の点に変更します(期待どおりに機能し、sin / cos / theta、単純なトリガーを使用します)。それを使用してオブジェクトを描画するとGraphics2D
、座標に従いますが、インポートした画像を使用すると、数ピクセル(〜25)ピクセル移動します。角度、x、y、および半径があるのでAffineTransform
、画像をその中心点を中心に回転させ、常に中心点に向けさせるために何を使用できますか?