使用libgdx在平铺纹理之间获得差距

use*_*015 11 java textures sprite tile libgdx

所以即时通讯使用libgdx,制作平台游戏.我使用方形瓷砖作为平台,但是当它们被绘制时,它们中的一些在它们之间有间隙.当我放大/缩小或移动相机移动间隙移动位置.有没有人有同样的问题或知道如何解决它?

更多细节.瓷砖的尺寸为32,并且已经尝试了32和64的纹理.瓷砖排列成32个例如.第一个图块将是x = 0 y = 0秒x = 32 y = 0,并且在x和y方向上都是如此.差距不是纹理假象,因为我已经检查了很多次.使用带填充的纹理包.我最好的猜测是,将纹理转换为屏幕坐标是一个问题,但实际上根本不知道如何解决这个问题.我以为这个问题以前出现过,但在任何地方找不到任何修复.我已经检查并用瓷砖尺寸仔细检查了我的精度并将它们排成一行.

任何帮助将非常感激.谢谢.

小智 11

这是另一个迟到的帖子,但我刚开始使用LibGDX,我遇到了同样的问题.我通过将TexturePacker.Settings类的duplicatePadding字段设置为true来修复它.

示例代码:

import com.badlogic.gdx.tools.texturepacker.TexturePacker;
import com.badlogic.gdx.tools.texturepacker.TexturePacker.Settings;

Settings settings = new Settings();
settings.maxWidth = 1024;
settings.maxHeight = 1024;
settings.duplicatePadding = true;

TexturePacker.process(settings, "source", "destination", "name");
Run Code Online (Sandbox Code Playgroud)


Nin*_*ics 6

好吧,我来这里救你的一天!

该解决方案称为"边缘填充".现在,如果您正在使用tilesets,我可以向您保证这将有效.

就个人而言,我正在使用Tiled,它允许我调整我的tilesets中的边距和间距.唯一的缺点是你必须使用GIMP这个插件:http://registry.gimp.org/node/26044

这个插件可以让你在你的瓷砖集上应用边缘填充!没有更丑陋的文物.


Jer*_*ins 4

流血的

差距

简而言之,这可能是您的过滤器,可能需要将其设置为“最近”。

可能还想查看Libgdx 的工作教程。