私は宇宙ゲームを作っています。小さなドローン船を大きなプレイヤー船の軌道に乗せたいと思っています。完全な円で周回する方法が完全にはわかりません。今のところ、ひし形に動かすことはできますが、円の形に修正する試みは失敗に終わりました。
基本的に、私は次のようなことをしています:
float centerX = ship.getX() + (ship.getWidth() / 2);
float centerY = ship.getY() + (ship.getHeight() / 2);
float droneX = drone.getX();
float droneY = drone.getY();
float radius = drone.getRadius();
float xDiff = Math.abs(droneX - centerX);
float yDiff = Math.abs(droneY - centerY);
float moveByX = Math.abs(radius / (xDiff == 0 ? 1 : xDiff) / smoother);
float moveByY = Math.abs(radius / (yDiff == 0 ? 1 : yDiff) / smoother);
そして、moveByX と moveByY の値でドローンを動かします。先に述べたように、ひし形では問題なく動作しますが、これを改善して正しい円形パターンを計算するにはどうすればよいでしょうか?