この質問には何百万回もの質問がありますが、私は若干異なる問題があります。私はPolygonオブジェクトを1つの単位 "ブロック"から作成し、ブロックが互いに接触するかどうかを判断する必要があります。他の回答には、このようなコードを持っていた:Java-Shape Collision Detection
Area area1 = new Area(poly1);
Area area2 = new Area(poly2);
area1.instersect(poly2);
if(!area1.isEmpty()) {
// Do collision stuff here
}
これは、形状が(彼らが接触している)隣接している場合、これは衝突を報告しないだろうということですけれども、問題を持っています。
私の元のアイデアは、1つのポリゴンの周りに1単位の境界線を持つことでした。したがって、それらが隣り合っていた場合、境界線は2番目のポリゴンと交差し、衝突します。私は境界線を追加する方法を見つけることができないようです。
お願いします。
EDIT:
この問題場合、すべてのブロックのサイズが1x1の単位であり、(ArrayListの付) "チャンク" に格納されています。 My Polygonオブジェクトは、オブジェクト全体を表します。これを行うより良い方法があれば、教えてください!
私のコードは、私は潜在的にブロックの塊/数十万人を持っているとして、できるだけefficentようにする必要がある、と物理ループが1秒ごとに
ここで2Dまたは3Dポリゴンを話していますか? – kasoban
私は2Dポリゴンで作業しています – atoms118