私はいくつかの動く点で単純なゲームをやっています。プレーヤーはいくつかの動く点の周りに閉じた形を描き、すべての点が同じタイプである場合、プレーヤーにスコアがあります。パスはポイント単位で、arraylist に格納されます。私の質問は、パス内にオブジェクトがあるかどうかを確認するにはどうすればよいですか?
編集: Region クラスとメソッド inside(int x, int y) で実行できますか??
閉じた形状は任意の多角形にすることができますか、それとも長方形に限定されますか? それが任意のポリゴンである可能性がある場合、これは凸包の問題のように聞こえます (ただし、確実に説明するには、アルゴリズムの本のほこりを払う必要があります)。凸包の問題である場合は、Jarvis マーチ アルゴリズムを使用してこれを解決できるはずです。
また、ウィキペディアは、別のオプションがRay Castingであることを示しています。このアルゴリズムの Java 実装は、ここにあります。
長方形を描画する必要があります..長方形クラスを使用してから、ポイントクラスを使用してポイントを作成します。
このインポートは、android.graphics.Rect; のインポートに役立つと思います。
次のようにコーディングします。
Rect myrectangleContainer=new Rect(100, 100, 200, 200);
Point dot= new Point(x,y);
次に、ブール値を収集します
boolean isDotWithRect=myrectangleContainer.contains(dot.x,dot.y)