2015-11-19 33 views
0

有谁知道libGDX是否有滚动/移动图像/纹理的方法Image/Texture scroll/shift(wrap)

解释;我希望能够滚动图像的内容(像素),在其自己的区域内垂直或水平。例如,如果图像向右移动1个像素,则所有像素都会向右移动1,而最右边的图像会被移至最左边缘。图像大小不会改变,只有像素内的像素位置发生变化。

我主要使用Sprite类,它可以做很多(比例,旋转等),但是根据需要移位/滚动,不在那里。

书面方式方法我之前,我想我会在这里问...

以下为我工作,这是由库什提供:

float delta = 0f; 

// In the Actors act method 
delta += Gdx.graphics.getDeltaTime(); 

// Horizontal 
batch.draw(texture, 0, 0, width, height, 0 + delta * 10, 1, 1 + delta * 10, 0); 

// Vertical 
batch.draw(texture, 0, 0, width, height, 1, 0 + delta * 10, 0, 1 + delta * 10); 

回答

2

您不需要雪碧这个,使用批次直接绘制纹理。对于包裹首先设置

Texture texture = new Texture("example.png"); 
texture.setWrap(TextureWrap.Repeat, TextureWrap.Repeat); 

然后使用UV

batch.draw(texture, x, y, width, height, u, v, u2, v2); 

或适合你的SpriteBatch任何其他方法来绘制。

+0

我终于可以测试你写的东西了。我给你一个+1,因为batch.draw(texture,...)有很多选项,但是没有打勾(至今),因为我一直无法使滚动工作。 – munyul

+0

'batch.draw(texture,0,0,width,height,0 + delta * 10,1,1 + delta * 10,0);' delta可以是Gdx.graphics.getDeltaTime()。 – Kush

+0

谢谢,这是有效的 - 我以为我已经测试过那样的东西...不要猜测。 – munyul