如何在libgdx中进行旋转对象的碰撞检测

时间:2014-10-12 12:57:52

标签: android libgdx

我有一个将要旋转的游戏对象。

import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.graphics.g2d.TextureRegion;

public class Object extends AbstractGameObject{// AbstractGameObject is a class to apply physics on the object
private TextureRegion object;
float rot;
public Object(){
    init();
}
private void init() {
    dimension.set(2f, 2f);
    object = Assets.instance.object.object;//it just retrieves the texture region from assets class
    // Set bounding box for collision detection
    bounds.set(0,0, dimension.x, dimension.y);
}
@Override
public void render(SpriteBatch batch) {
    TextureRegion reg = null;
    final float degressPerSecond = 120.0f;
    rot = (rot + Gdx.graphics.getDeltaTime() * degressPerSecond) % 360;
    reg = object;

    batch.draw(reg.getTexture(),
            position.x, position.y,
            origin.x, origin.y,
            dimension.x, dimension.y,
            scale.x, scale.y,
            rot,
            reg.getRegionX(), reg.getRegionY(),
            reg.getRegionWidth(), reg.getRegionHeight(),
            false, false);
}

}

Rectangle bounds = new Rectangle(); //表示wt我的意思是边界

浮动物体将旋转物体。当边界被设置为固定点并且边界没有旋转时。我的问题是,当我的charac接触它时,这个物体开始旋转。应该发生的事情。谢谢你。

1 个答案:

答案 0 :(得分:3)

您可以从矩形创建多边形。 然后,将旋转应用于多边形。 要检查点是否在内部,只需使用polygon.contains(x,y)并检查它是否与其他多边形重叠,请使用Intersector类。 http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/math/Intersector.html