if (points.size() >= 3) {
for (int i = 1; i <= points.size() - 1; i++) {
if (Intersector.intersectLines(points.get(0), points.get(1), points.get(i), points.get(i + 1), null)) return true;
}
}
return false;
私はこれで私のエラーを見つけることができないので、メソッド intersecLines() のように思えます。これは、2 つの線に 1 つ以上の共通点があるかどうかをチェックして、間違った結果を返します。
私はスネークのようなゲームでこれを使用しています。このメソッドは、この「スネークパス」(パスのポイントで構成される ArrayList として存在する) の最初のポイントと 2 番目のポイントの間の線が交差するかどうかを確認する必要があります。ヘビを構成する他の線の1つと。
パラメータは次のとおりです。 Vector2 first 最初の行のポイント。Vector2 最初の線の 2 番目のポイント。Vector2 2 番目の線の最初のポイント。Vector2 2 番目のラインの 2 番目のポイント。交点に設定される Vector2。
GDX に慣れていない方のために説明すると、GDX は Java でのクロスプラットフォーム開発に使用されるフレームワークであり、ほとんどのメソッドは openGL ES メソッドの実装です。Intersector クラスの API リファレンスは次のとおりです: http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/math/Intersector.html