Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 更改libgdx中的纹理以创建动画_Android_Libgdx - Fatal编程技术网

Android 更改libgdx中的纹理以创建动画

Android 更改libgdx中的纹理以创建动画,android,libgdx,Android,Libgdx,更改单元纹理的最佳方法是什么 我有一只可控制的鸟,当你按到它的左边时,我想改变纹理,使鸟向左倾斜,按到右边也一样。基本上,我想改变鸟的形象 我已经让它工作了,但我不禁想到还有更好的方法,这就是我所拥有的: Texture birdOriginal; Texture birdLeft; Texture batRight; birdOriginal = new Texture(Gdx.files.internal("textures/birdNew.png")); birdLeft = new T

更改单元纹理的最佳方法是什么

我有一只可控制的鸟,当你按到它的左边时,我想改变纹理,使鸟向左倾斜,按到右边也一样。基本上,我想改变鸟的形象

我已经让它工作了,但我不禁想到还有更好的方法,这就是我所拥有的:

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;
}
纹理双基诺;
织构鸟;
纹理蝙蝠;
birdOriginal=新纹理(Gdx.files.internal(“textures/birdNew.png”);
birdLeft=新纹理(Gdx.files.internal(“textures/birdLeft.png”);
birdRight=新纹理(Gdx.files.internal(“textures/birdRight.png”);
//伪代码
if(鸟位>触位){
鸟笼=鸟笼;
}
if(鸟位<触位){
鸟笼=鸟笼;
}
如果(!Gdx.input.isTouched()){
鸟笼=鸟笼;
}
正如我所说,这是可行的,但我之所以这么问,是因为我不想每次按下屏幕时都让翅膀上下摆动,而且我认为我无法在纹理之间切换来实现这一点


谢谢收听

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

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

绘制(纹理纹理、浮点数x、浮点数y、浮点数原点x、浮点数原点y、浮点数宽度、浮点数高度、浮点数比例x、浮点数比例y、浮点数旋转、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>