2015-11-19 58 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