你好,我想做一个无休止的背景。所以我尝试包裹我的纹理。
texture.setWrap(Texture.TextureWrap.Repeat, Texture.TextureWrap.Repeat);
并绘制它:
bach.begin();
bach.draw(texture, 0, 0);
bach.end();
当我使用setWrap时,我没有改变纹理。
如果我以这种方式绘制纹理:
bach.begin();
bach.draw(texture, 0, 0, texture.width, texture.height, 0, 0, 1, 1);
bach.end();
重复纹理但翻转......
如果我试图翻转bach.draw中的y和x,我会收到错误。
我只能翻转相机,但是位置y也翻转(翻译成负值/翻译成正值)
答案 0 :(得分:1)
要重复一个纹理,你需要它使用大于1的UV,你可以使用比它引用的纹理更大的TextureRegion。
TextureRegion backgroundTextureRegion = new TextureRegion(texture, bgWidth, bgHeight);
//...
batch.begin();
batch.draw(backgroundTextureRegion, 0, 0, cameraWidth, cameraHeight);
batch.end();
bgWidth
和bgHeight
是您要绘制背景的宽度和高度的纹素数。例如,如果你的相机viewportWidth
是1920,并且你希望你的纹理以1:1的比例绘制(纹理像素:相机单位),那么bgWidth
将是1920。
如果您需要垂直翻转,可以使用-bgHeight
而不会弄乱相机。