gpt4 book ai didi

java - Libgdx Spritebatch 错误

转载 作者:行者123 更新时间:2023-12-02 10:46:54 25 4
gpt4 key购买 nike

但是,我有一个奇怪的问题,在绘制时,图像的外部 1px 似乎被拉伸(stretch)以适合矩形,但内部仅拉伸(stretch)到一定范围,我正在绘制 48x48 的图 block ,但绘制了 500x500平铺以显示问题。 [ 500x500 画得很好 ]最糟糕的部分似乎是,它选择何时拉伸(stretch)和不拉伸(stretch)。以及要拉伸(stretch)什么。抱歉,这很难解释,但我附上了一张图片,希望能做得更好。 enter image description here这可能只是误解了如何使用 spritebatch 进行绘制编辑:图 block 是 48x48 而不是 64x64,我刚刚工作了一整天。

最佳答案

这是因为您没有渲染“像素完美”,这意味着您的图像与显示器的像素网格不对齐。一个快速解决方法可能是为您的纹理设置一个线性过滤器,因为默认情况下它使用最近的颜色,因此屏幕上的像素将继承它可以获得的最接近的颜色。线性滤镜将插入颜色并使该线“看起来”更细。

texture.setFilter(Texture.TextureFilter.Linear, Texture.TextureFilter.Linear);

如果您使用的是texturepacker,您可以通过更改其设置一次性完成此操作。

texturePackerSetting.filterMin = Texture.TextureFilter.Linear;
texturePackerSetting.filterMag = Texture.TextureFilter.Linear;

或者您可以通过将过滤器参数更改为来编辑图集文件本身:

filter: Linear,Linear

这显然会花费更多的电量,因为它需要为您绘制到屏幕上的每个像素进行更多的计算,但在您的绘图开始遇到瓶颈之前我不会担心这一点。

另一个解决方案是绘制像素完美,这意味着您需要将视口(viewport)设置为设备的大小gdx.graphics.getWidthgdx.graphics.getHeight,换句话说,一个 ScreenViewport 并以您想要的确切尺寸绘制纹理。当然,这意味着像素较多的屏幕比像素较少的屏幕能看到更多的游戏世界,而设备像素越多,纹理看起来就越小。这样做的另一个缺点是,您必须忘记任何缩放或为每个缩放级别绘制 Sprite ,以便它们再次与设备的像素网格对齐。

关于java - Libgdx Spritebatch 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52473884/

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