gpt4 book ai didi

java - LibGDX纹理setWrap方法不重复

转载 作者:行者123 更新时间:2023-12-01 11:19:02 26 4
gpt4 key购买 nike

你好,我正在尝试制作一个永无休止的背景。所以我尝试包裹我的纹理。

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 也会翻转(向上平移变为负值/向下平移变为正值)

最佳答案

要重复纹理,您需要它使用大于 1 的 UV,您可以使用大于它引用的纹理的纹理区域来实现这一点。

TextureRegion backgroundTextureRegion = new TextureRegion(texture, bgWidth, bgHeight);

//...

batch.begin();
batch.draw(backgroundTextureRegion, 0, 0, cameraWidth, cameraHeight);
batch.end();

其中bgWidthbgHeight是您想要绘制背景的纹理像素的宽度和高度。例如,如果您的相机的 viewportWidth 为 1920,并且您希望以 1:1 比例绘制纹理(纹理像素:相机单位),则 bgWidth 将为 1920。

如果您需要垂直翻转,可以使用-bgHeight代替,而不会干扰相机。

关于java - LibGDX纹理setWrap方法不重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31468590/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com