Java 创建时旋转精灵。
我是这个框架的新手,旋转精灵时遇到了一些问题。我认为我做得对,但不知怎么的,它不起作用 这就是我所拥有的:我正在使用scene2d,我有一个名为Cube的演员。在这个立方体的构造器中,我为作为立方体的精灵生成纹理,并执行以下操作:Java 创建时旋转精灵。,java,libgdx,Java,Libgdx,我是这个框架的新手,旋转精灵时遇到了一些问题。我认为我做得对,但不知怎么的,它不起作用 这就是我所拥有的:我正在使用scene2d,我有一个名为Cube的演员。在这个立方体的构造器中,我为作为立方体的精灵生成纹理,并执行以下操作: public Cube(){ sizeOfCube = 40; Pixmap pixmap = new Pixmap(sizeOfCube,sizeOfCube, Pixmap.Format.RGBA8888); pixmap.setColo
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调用。谢谢!它工作得很好!我讨厌新事物,很难让你开始!