基于box2D体角度旋转textureRegion(无精灵)

时间:2017-01-26 16:50:15

标签: java libgdx textures box2d spritebatch

我正在尝试使用spriteBatcher绘制方法旋转基于box2d体角度的textureRegion:

SpriteBatch.draw(TextureRegion region, float x, float y, float originX, float originY, float width, float height,float scaleX, float scaleY, float rotation)

然而,产生的旋转看起来像这样

enter image description here 我无法弄清楚我做错了什么,尝试了很多不同的originX,originY组合,它总是被打破。试图将起源设置为身体中心,左下角,没有运气。

看了一下文档,对SpriteBatch.class进行了分析,但我不明白是什么原因。

如何正确旋转纹理?

编辑:我不能使用Sprite类,因为正在绘制的textureRegion是一个动画帧,而且你不能用Sprite类制作动画帧

2 个答案:

答案 0 :(得分:1)

原点位于图像的左下角,将其放在图像的中心。所以make originX width / 2和originY height / 2。

答案 1 :(得分:1)

像这样设置box2d体的多边形

float width=x,height=y;

PolygonShape polygonShape=new PolygonShape();
polygonShape.setAsBox(width/2, height/2,new Vector2(width/2,height/2),0);

PolygonShape的setAsBox方法被重载。