首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Libgdx Spritebatch错误

Libgdx Spritebatch错误
EN

Stack Overflow用户
提问于 2018-09-24 06:41:44
回答 1查看 65关注 0票数 0

然而,我有一个奇怪的问题,当我绘图时,一个图像的外部1px被拉伸成一个矩形,但是内部只在很大程度上被控制,我是画到48x48块,但是画了一个500 x500瓦来显示这个问题。500 x 500拉细似乎是最糟糕的部分,它选择什么时候拉伸,而不是拉伸。还有该撒些什么。很抱歉,这很难解释,但我附上了一张图片,希望能做得更好。

它可能只是误解如何使用绘图与sprite批处理编辑:瓷砖是48x48而不是64x64,我已经工作了一整天.

EN

回答 1

Stack Overflow用户

发布于 2018-09-24 08:20:40

这是因为您没有呈现“像素完美”,这意味着您的图像没有对齐像素网格的显示器。快速修复可能是为您的纹理设置一个线性过滤器,因为默认情况下它使用最近的,因此屏幕上的一个像素将继承它能得到的最接近的颜色。线性滤波器将插值颜色,使这条线“看起来”更薄。

代码语言:javascript
复制
texture.setFilter(Texture.TextureFilter.Linear, Texture.TextureFilter.Linear);

如果您正在使用纹理打包器,您可以通过更改它的设置一次完成此操作。

代码语言:javascript
复制
texturePackerSetting.filterMin = Texture.TextureFilter.Linear;
texturePackerSetting.filterMag = Texture.TextureFilter.Linear;

或者,可以通过将filter参数更改为:

代码语言:javascript
复制
filter: Linear,Linear

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

另一个解决方案是绘制像素完美,这意味着您需要将您的视图设置为设备gdx.graphics.getWidthgdx.graphics.getHeight的大小,换句话说,是一个ScreenViewport,并绘制您想要的纹理大小。当然,这意味着拥有更多像素的屏幕会看到更多的游戏世界,而屏幕上的像素越少,设备的像素越多,您的纹理就会越小。另一个缺点是,你必须忘记任何缩放或绘制每级变焦的精灵,以便它们再次与设备的像素网格一致。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52473884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档