Java 无法在libgdx中旋转我的精灵

Java 无法在libgdx中旋转我的精灵,java,android,opengl-es,libgdx,Java,Android,Opengl Es,Libgdx,因此,我一直在研究其他人的问题,并试图将答案应用到我的代码中,但我似乎没有找到如何做到这一点。我想做的就是,当精灵移动时,它会同时旋转。这就是我在我的Player类(扩展了Sprite)中调用rotate函数的地方: 在它用于扩展Actor和使用setRotate(90*dt)之前,它工作得很好。我决定改用雪碧,因为我不想依赖舞台 以下是我在游戏屏幕中渲染玩家的方式: game.batch.begin(); game.batch.draw(atlas2.findRegion("playe

因此,我一直在研究其他人的问题,并试图将答案应用到我的代码中,但我似乎没有找到如何做到这一点。我想做的就是,当精灵移动时,它会同时旋转。这就是我在我的Player类(扩展了Sprite)中调用rotate函数的地方:

在它用于扩展Actor和使用setRotate(90*dt)之前,它工作得很好。我决定改用雪碧,因为我不想依赖舞台

以下是我在游戏屏幕中渲染玩家的方式:

game.batch.begin();
    game.batch.draw(atlas2.findRegion("player"), player.getPosition().x, player.getPosition().y, player.PLAYER_DIMENSION , player.PLAYER_DIMENSION);
game.batch.end();
我试图使用Sprite类中的player.draw(game.batch)函数,但我没有使用,因为我需要一个纹理,而我使用的纹理只是一个AtlasRegion,它不允许我的类型转换为纹理


因此,如果有任何关于如何使我的精灵旋转的建议,我将不胜感激

Sprite
保存用于绘制二维Sprite的几何体、颜色和纹理信息。在几何中,它包含精灵的位置、大小、旋转和比例

使用下面的方法,你只能传球球员的位置和大小
Sprite

game.batch.draw(atlas2.findRegion("player"), player.getPosition().x, player.getPosition().y, player.PLAYER_DIMENSION , player.PLAYER_DIMENSION);
以这种方式使用:

TextureAtlas atlas2=....;
Sprite player=new Sprite(atlas2.findRegion("player"));
并使用
Sprite

player.draw(game.batch)

编辑

public class Player extends Sprite {

   public Player(TextureRegion region){    // <- Add this constructor 
       super(region);
       ...
   }
}

好的,但在这种情况下,我不会制作一个玩家类?因为您正在制作一个精灵对象而不是玩家对象。我不确定是否可以根据您发布的
我的播放器类(扩展了Sprite):
将纹理作为参数传递给我的播放器类,因此我认为您已经拥有接受纹理区域的构造函数,如果没有,请添加。我已经编辑了我的答案。好的,这样做了,它的旋转很酷…但无论if语句如何,它都会不断旋转,而且不会改变位置!您正在更新作为播放机属性的
position
向量,
Sprite
不使用该属性绘制,因此通过
setPosition(x,y)更新Sprite的x和y否则将覆盖精灵的绘制(批处理)
方法并自行绘制确定,因此决定只设置位置(x,y),它工作正常非常感谢。我只是想知道,如果我决定自己画,我会在画的方法中添加什么?可能是
public class Player extends Sprite {

   public Player(TextureRegion region){    // <- Add this constructor 
       super(region);
       ...
   }
}
Player player=new Player(atlas2.findRegion("player");