好吧,我想这getTexture()从TextureRegion类方法是不是你在这种情况下所需要的(否则你可以简单地使用它像sprite.setTexture(currentFrame.getTexture());
)
因为你正在做一个动画,我可能会猜测资产中存在精灵图表图像。因此,动态显示板,你应该创建一个libgdx动画,如:
int ROW = 4; // rows of sprite sheet image
int COLUMN = 4;
TextureRegion[][] tmp = TextureRegion.split(playerTexture, playerTexture.getWidth()/COLUMN, playerTexture.getHeight()/ROW);
TextureRegion[] frames = new TextureRegion[ROW * COLUMN];
int elementIndex = 0;
for (int i = 0; i < ROW; i++) {
for (int j = 0; j < COLUMN; j++) {
frames[elementIndex++] = tmp[i][j];
}
}
Animation playerAnimation = new Animation(1, frames);
其中playerTexture是精灵表单图像
然后在你的性格类创建TextureRegion设置currentFrame场初始化动画的当前帧( playerAnimation以上):
// used for currentFrame initialization
TextureRegion currentFrame = playerAnimation.getKeyFrame(0);
然后在游戏画面的更新方法使用浮法增量(或Gdx.graphics.getDeltaTime()
)来更新动画的关键帧(换言之,以动画子画面)。
public void update(float delta){
currentFrame = playerAnimation.getKeyFrame(delta);
}
终于在您的平局(或渲染)方法你画炭像
public void draw(){
batch.begin();
batch.draw(char.getCurrentFrame(), char.getPosition().x, char.getPosition().y);
batch.end();
}
希望我理解你的问题正确和帮助。
从技术上讲,这并不回答这个问题,但它适用于我所需要的,甚至比我目前所做的更好,因此我将其作为答案进行了upvoting并将其作为答案! –