使用Circlhape和Body旋转纹理

时间:2014-12-17 21:11:51

标签: java libgdx textures game-physics

我试图通过身体的旋转来旋转球纹理,但我无法弄清楚我做错了什么。

这是我绘制方法的代码

    @Override
public void draw(Batch batch, float parentAlpha) {
    super.draw(batch, parentAlpha);
    sprite.setSize((Gdx.graphics.getWidth()/10), (Gdx.graphics.getWidth()/10));
    sprite.setPosition(body.getPosition().x - sprite.getWidth()/2, body.getPosition().y -sprite.getHeight()/2);
    sprite.setRotation(body.getAngle()* MathUtils.radiansToDegrees);
    sprite.setOrigin(sprite.getWidth()/2, sprite.getHeight()/2);
    sprite.draw(batch);
}

身体旋转,但纹理没有。

1 个答案:

答案 0 :(得分:0)

您尝试Sprite.rotate(YourRotation);

但请注意body.getAngle()会返回身体相对于其初始位置的旋转,我认为您必须调整旋转使用。

例如,在帧和帧之间取body.getAngle(),前一帧的差异是你应用于sprite.rotate所以当0为0时这不会移动,使用一种或另一种方法可能取决于你是否会移动很多时间或只是一次或我想。 希望它会有所帮助,我已经解释得很好。

修改

现在更好地阅读你的问题,sprite.setRotation(body.getAngle()* MathUtils.radiansToDegrees);必须稍微旋转,当你说没有旋转时,你的意思是没有任何旋转,或旋转不好,可以检查你是否正在接收你期望的数据< / p>