在libgdx中更改纹理以创建动画

时间:2014-08-20 20:40:29

标签: android libgdx

改变单位纹理的最佳方法是什么?

我有这种可控的鸟,当你按下它的左边时,我想改变纹理,使鸟向左倾斜,向右按压时也是如此。基本上,我想改变鸟的形象。

我已经有了它的工作,但不禁认为有更好的方法可以做到这一点,这就是我所拥有的:

Texture birdOriginal;
Texture birdLeft;
Texture batRight;

birdOriginal = new Texture(Gdx.files.internal("textures/birdNew.png"));
birdLeft = new Texture(Gdx.files.internal("textures/birdLeft.png"));
birdRight = new Texture(Gdx.files.internal("textures/birdRight.png"));

//psuedo code
if (birdPosition > touchPosition){
  birdImage = birdRight;
}
if (birdPosition < touchPosition){
  birdImage = birdRight;
}

if (!Gdx.input.isTouched()){
  birdImage = birdOriginal;
}

正如我所说,这是有效的,但我在问,因为每当我按下屏幕时我都不会让翅膀上下移动,我不认为我可以在纹理之间进行交换。

感谢收听。

1 个答案:

答案 0 :(得分:1)

这可以通过使用相同的纹理而不是多个纹理来完成,将其声明为精灵。 使用精灵,您可以更轻松地操作图像,例如旋转和翻转。

您还可以继续使用纹理并使用以下

draw(纹理纹理,float x,float y,float originX,float originY,float width,float height,float scaleX,float scaleY,float rotation,int srcX,int srcY,int srcWidth,int srcHeight,boolean flipX, boolean flipY)

<code>
Sprite bird = new Sprite(birdTexture);
bird.setFlip(true, false);
bird.rotate(0.45);
</code>

http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/graphics/g2d/Sprite.html