当前位置: 动力学知识库 > 问答 > 编程问答 >

java - Image/Texture scroll/shift (wrap)

问题描述:

Does anyone know whether libGDX has a method for scrolling/shifting an image/texture within itself?

To explain; I would like to be able to scroll the contents (pixels) of an image, either vertically or horizontally within its own region. For example, if an image is shifted 1 pixel to the right, all pixels move 1 to the right and those on the right-most-edge are wrapped to the left-most-edge. The image size does not change, only the positioning of the pixels within it change.

I have mainly been working with the Sprite class, it can do a lot (scale, rotate, etc) but shift/scroll as I need it, isn't there.

Before writting the method myself, I thought I'd ask here...

The following worked for me, this was provided by Kush:

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);

网友答案:

You won't need Sprite for this, draw directly Texture using batch. For wrapping first set

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

then draw using uv

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

or any other method that suits you in SpriteBatch.

分享给朋友:
您可能感兴趣的文章:
随机阅读: