改变单位纹理的最佳方法是什么?
我有这种可控的鸟,当你按下它的左边时,我想改变纹理,使鸟向左倾斜,向右按压时也是如此。基本上,我想改变鸟的形象。
我已经有了它的工作,但不禁认为有更好的方法可以做到这一点,这就是我所拥有的:
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;
}
正如我所说,这是有效的,但我在问,因为每当我按下屏幕时我都不会让翅膀上下移动,我不认为我可以在纹理之间进行交换。
感谢收听。
答案 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