Java 创建时旋转精灵。

Java 创建时旋转精灵。,java,libgdx,Java,Libgdx,我是这个框架的新手,旋转精灵时遇到了一些问题。我认为我做得对,但不知怎么的,它不起作用 这就是我所拥有的:我正在使用scene2d,我有一个名为Cube的演员。在这个立方体的构造器中,我为作为立方体的精灵生成纹理,并执行以下操作: public Cube(){ sizeOfCube = 40; Pixmap pixmap = new Pixmap(sizeOfCube,sizeOfCube, Pixmap.Format.RGBA8888); pixmap.setColo

我是这个框架的新手,旋转精灵时遇到了一些问题。我认为我做得对,但不知怎么的,它不起作用

这就是我所拥有的:我正在使用scene2d,我有一个名为Cube的演员。在这个立方体的构造器中,我为作为立方体的精灵生成纹理,并执行以下操作:

public Cube(){
    sizeOfCube = 40;

    Pixmap pixmap = new Pixmap(sizeOfCube,sizeOfCube, Pixmap.Format.RGBA8888);
    pixmap.setColor(Color.BLUE);
    pixmap.fill();
    pixmap.drawRectangle(0,0,sizeOfCube,sizeOfCube);

    Texture rectangleTexture = new Texture(pixmap);
    pixmap.dispose();

    rectangleSprite = new Sprite(rectangleTexture,0,0,sizeOfCube,sizeOfCube);
    rectangleSprite.setPosition(Gdx.graphics.getWidth() / 2 - rectangleSprite.getWidth() / 2,
            Gdx.graphics.getHeight() / 2);

    rectangleSprite.setOrigin(rectangleSprite.getWidth()/2, rectangleSprite.getHeight()/2);
    rectangleSprite.rotate(45f);
} 
在演员的绘画方法中,我有:

@Override
public void draw(Batch batch, float alpha){
    batch.draw(rectangleSprite, rectangleSprite.getX(), rectangleSprite.getY());
}
精灵在屏幕中正确渲染,但根本没有旋转!这让我发疯,我读过很多地方,我的代码看起来很好,但我无法让它工作,所以肯定有一些东西我遗漏了,因为我对这个世界完全陌生


非常感谢

绘制多维数据集时,应将有关旋转的信息发送给批次:

@Override
public void draw(Batch batch, float alpha){
    batch.draw(rectangleSprite,
               rectangleSprite.getX(), 
               rectangleSprite.getY(),
               rectangleSprite.getOriginX(),
               rectangleSprite.getOriginY(),
               rectangleSprite.getWidth(),
               rectangleSprite.getHeight(),
               rectangleSprite.getScaleX(),
               rectangleSprite.getScaleY(),
               rectangleSprite.getRotation());
}
顺便说一下,你可以把它缩短一些。不要创建新的精灵。只需调用多维数据集方法(你说的是参与者):setPosition()setOrigin()rotate()。然后在“渲染方法”中,您可以使用如下方法:

batch.draw(rectangleSprite, getX(), getY(), getOriginX(), getOriginY(), getWidth(), getHeight(), getScaleX(), getScaleY(), getRotation());

如果您调用
sprite.draw(批处理)
sprite.draw(批处理、浮点字母调制)
,libGDX将为您考虑所有的sprite属性,而不是您自己使用自己的draw调用。

谢谢!它工作得很好!我讨厌新事物,很难让你开始!