2016-05-11 21 views
1
for (int i = 0; i < 13; i++) { 
      circleSprites.get(i).setOrigin(circleSprites.get(4).getX(), circleSprites.get(4).getY()); 
      circleSprites.get(i).rotate(20 * delta); 
      circleCollisions.get(i).setPosition(circleSprites.get(i).getX() + 1, circleSprites.get(i).getY() + 1); 
     } 
     for (int i = 13; i < 26; i++) { 
      circleSprites.get(i).setOrigin(circleSprites.get(17).getX(), circleSprites.get(17).getY()); 
      circleSprites.get(i).rotate(-20 * delta); 
      circleCollisions.get(i).setPosition(circleSprites.get(i).getX() + 1, circleSprites.get(i).getY() + 1); 
     } 

this!のようなものがありますが、スプライトは内在するように回転していませんが、私はそれを理解することができます。しかし、回転子は視覚的にそれを行うのですが、私は座標をチェックし、同じままでした。では、上の図のような回転のためにどのように衝突を設定するのですか?libgdx - 点の周りの回転の回転

+0

あなたの質問を更新して詳細を説明してください。あなたの質問はあまり明確ではありません。 – Tauqir

答えて

1

LibGDXにはこれらの状況で有用なIntersectorクラスがあります。

これは、相互に交差をテストするために、すべてのタイプの幾何学的形状に対して複数の方法を持っています。

まずあなたが(これらの円は、私たちはとの衝突をチェックするものではないだろう、我々はに対してテストするために、幾何学的な表現を持っているので、あなたのスプライトでこれらを移動し、その後サークルに

com.badlogic.gdx.math.Circle circle = new Circle(x,y,r); 

をこれらのスプライトのそれぞれを与える必要がありますこれらの円は、いつでも表現できるスプライトで移動する必要があります)。あなたはと衝突したい物事に対するセクタ間クラスを持つすべての更新チェックのすべてのあなたのサークルのメンバーで、その後

、すなわち

overlaps(Circle c, Rectangle r) 
overlaps(Circle c1, Circle c2) 

など

https://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/math/Circle.html

https://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/math/Intersector.html

これを見ます投稿...

Circle and Polygon Collision with Libgdx

関連する問題