Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android libgdx-围绕点旋转碰撞 for(int i=0;i_Android_Libgdx - Fatal编程技术网

Android libgdx-围绕点旋转碰撞 for(int i=0;i

Android libgdx-围绕点旋转碰撞 for(int i=0;i,android,libgdx,Android,Libgdx,想要一些像精灵一样的东西,但我能理解。但问题是,旋转只是视觉上的,我检查了坐标,它们保持不变。那么如何为上图中的旋转设置碰撞呢?LibGDX有一个Intersector类,在这些情况下非常有用 对于所有类型的几何形状,它都有多种方法来测试相互之间的交点 首先,你需要给每个精灵一个圆圈 for (int i = 0; i < 13; i++) { circleSprites.get(i).setOrigin(circleSprites.get(4).getX(), c

想要一些像精灵一样的东西,但我能理解。但问题是,旋转只是视觉上的,我检查了坐标,它们保持不变。那么如何为上图中的旋转设置碰撞呢?

LibGDX有一个Intersector类,在这些情况下非常有用

对于所有类型的几何形状,它都有多种方法来测试相互之间的交点

首先,你需要给每个精灵一个圆圈

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);
        }
然后用精灵移动这些圆,这样我们就有了一个几何表示来测试(这些圆将是我们检查碰撞的对象,而不是精灵,所以我们需要随时用它们所表示的精灵移动这些圆)

然后在每次更新中,与Intersector类一起检查您所有的圆是否与您希望碰撞的对象相冲突,即

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

看到这个帖子


请您用更多的文字和图片详细更新并解释您的问题。你的问题不是很清楚。
overlaps(Circle c, Rectangle r) 
overlaps(Circle c1, Circle c2)