2016-06-21 10 views
0

私のlibgdxゲームにはレーザーがあり、ビームがターゲットに当たったかどうかを知りたい。libgdx線とポリゴンとの衝突(インターセクター)

(いつも真実になります)私は非常に簡単なテストをしましたが、私はまだ真実になります!

私は何かを見逃しましたか?

なぜこの関数はtrueを返しますか?

if(Intersector.intersectLinePolygon(new Vector2(100, 100), new Vector2(200, 100), new Polygon(new float[] {0, 0, 5, 0, 5, 5}))) { 
    System.out.println("true"); 
} 

ありがとうございます!

答えて

0

私が最初にインターセクターを使用したとき、私はこれに巻き込まれました。

intersectLinePolygon()メソッドは、指定した2点の間だけでなく、無限に伸びる線に対しても機能します。

が何をしたいんintersectSegmentPolygon()メソッドを使用して...

if(Intersector.intersectSegmentPolygon(new Vector2(100, 100), new Vector2(200, 100), new Polygon(new float[] {0, 0, 5, 0, 5, 5}))) { 
    System.out.println("true"); 
} 
+0

ありがとうございました!それは問題を解決し、それらの関数の違いを得るが、無限の線であっても、私の例では決して交差しないので、それはまだ偽ではないだろうか? – user1818410

+0

これは、(0、0) –