gpt4 book ai didi

java - Box2D 围绕其中心旋转物体.. LIBGDX

转载 作者:行者123 更新时间:2023-12-02 02:34:15 25 4
gpt4 key购买 nike

我正在尝试在 box2d 中围绕其中心旋转物体。 Sprite 的旋转是有效的,但主体所做的是围绕其左上角点旋转。

旋转 Sprite 的代码:

    public void drawBitMap(Bitmap bit, float x, float y, float width, float height, float rotation){
Sprite sprt = null;
if (!sprts.containsKey(bit)) {
sprt = new Sprite(bit.texture);
sprts.put(bit, sprt);
}else{
sprt = sprts.get(bit);
}
sprt.setOrigin(width/2,height/2);
sprt.setRotation(rotation);
sprt.setPosition(x,y);

sprt.setSize(width,height);
sprt.draw(this);
}

旋转体代码:

 body.setTransform(x, y, rotation * MathUtils.degreesToRadians);

正在发生的事情的图像:

Here, rotation is around (-/+)90 degrees

Here rotation is broken for every wolf

最佳答案

这可能与物体或夹具的原点定义有关。您能向我展示用于创建主体和固定装置的代码吗?

已编辑

好的,我检查了你的 JSON,这正是我的想法。在这些 JSON 中,固定装置定义为主体中心位于其左下角。

点 (0,0) 是主体的中心,并且您定义的夹具在其左下角有该点,这就是它绕其左下角旋转的原因。

这可能听起来令人困惑,所以我将给您一个简单的例子:正方形。具有相同问题的大小为 1 的正方形将其顶点定义为 (0,1)、(1,1)、(1,0) 和 (0,0)。

如上所述,点(0,0) 是主体的中心,因此,为了对齐夹具和主体的中心,应围绕主体中心点定义顶点( 0,0)。

正确的正方形应具有以下顶点:(-0.5,0.5)、(0.5,0.5)、(0.5,-0.5)、(-0.5,-0.5)。

关于java - Box2D 围绕其中心旋转物体.. LIBGDX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46634420/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com