你可以使用你的紋理「SetWrap」,並創建基於紋理TextureRegion。 重要提示:我花了一段時間才弄明白,但要鏡像,您的紋理必須是兩種尺寸的力量。它在Android上工作,但不在iOS上,您不會收到消息 - 顯示爲黑色。因此,它必須是4x4或8x8,16×16 256×256 ... 512×512或.. 創建一個3x3的鏡像圖像(或AXB大小)
Texture imgTexture = new Texture(Gdx.files.internal("badlogic.jpg"));
imgTexture.setWrap(Texture.TextureWrap.MirroredRepeat, Texture.TextureWrap.MirroredRepeat);
TextureRegion imgTextureRegion = new TextureRegion(imgTexture);
imgTextureRegion.setRegion(0,0,imgTexture.getWidth()*3,imgTexture.getHeight()*3);
會給你這樣的: ![enter image description here](https://i.stack.imgur.com/bh5qY.png)
下面你可以看到,使用一個階段和圖像演員(Scene2D)產生的圖象的代碼示例
public class GameScreen implements Screen {
MyGdxGame game;
private Stage stage;
public GameScreen(MyGdxGame aGame){
stage = new Stage(new ScreenViewport());
game = aGame;
Texture imgTexture = new Texture(Gdx.files.internal("badlogic.jpg"));
imgTexture.setWrap(Texture.TextureWrap.MirroredRepeat, Texture.TextureWrap.MirroredRepeat);
TextureRegion imgTextureRegion = new TextureRegion(imgTexture);
imgTextureRegion.setRegion(0,0,imgTexture.getWidth()*3,imgTexture.getHeight()*3);
TextureRegionDrawable imgTextureRegionDrawable = new TextureRegionDrawable(imgTextureRegion);
Image img = new Image();
img.setDrawable(imgTextureRegionDrawable);
img.setSize(imgTexture.getWidth()*3,imgTexture.getHeight()*3);
stage.addActor(img);
}
@Override
public void show() {
}
@Override
public void render(float delta) {
Gdx.gl.glClearColor(1, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
stage.act(delta);
stage.draw();
}
@Override
public void resize(int width, int height) {
stage.getViewport().update(width, height, true);
}
@Override
public void pause() {
}
@Override
public void resume() {
}
@Override
public void hide() {
}
@Override
public void dispose() {
stage.dispose();
}
}
我發現,要求在此之前,但是我有麻煩的事情與作爲並列於「TextureRegion」「紋理」的工作。現在我已經通過稍微修改LibGDX本身的類來解決這個問題,這當然不是很理想,但它確實有效。 – Shamrock
@Shammock你可以在這裏發佈你如何完成它?你改變了什麼? – Mars