Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我的libGDX TextureAtlas无法正确渲染精灵表纹理?_Java_Graphics_Libgdx_Spritebatch - Fatal编程技术网

Java 为什么我的libGDX TextureAtlas无法正确渲染精灵表纹理?

Java 为什么我的libGDX TextureAtlas无法正确渲染精灵表纹理?,java,graphics,libgdx,spritebatch,Java,Graphics,Libgdx,Spritebatch,在使用libGDX时,我注意到,有时我在屏幕上绘制的纹理并不是精确的像素,而是使用来自不同侧面的其他纹理的边缘的微小部分绘制的(例如,在这里,从头发顶部开始的一行像素被渲染到玩家脚下) 当我将我的游戏缩放到不同的大小时,黑色线条出现在侧面,我只能假设是相邻的纹理 在尝试从TextureAtlas文件渲染文本字段中的字体时,我会遇到同样的问题 我使用最近邻从TextureAtlas加载这些纹理。这是我的精灵表,这些是我的TextureAtlas从精灵表中进行的选择 对于为什么我的Textur

在使用libGDX时,我注意到,有时我在屏幕上绘制的纹理并不是精确的像素,而是使用来自不同侧面的其他纹理的边缘的微小部分绘制的(例如,在这里,从头发顶部开始的一行像素被渲染到玩家脚下)

当我将我的游戏缩放到不同的大小时,黑色线条出现在侧面,我只能假设是相邻的纹理

在尝试从TextureAtlas文件渲染文本字段中的字体时,我会遇到同样的问题

我使用最近邻从TextureAtlas加载这些纹理。这是我的精灵表,这些是我的TextureAtlas从精灵表中进行的选择

对于为什么我的TextureAtlas不能完美地切割图像,有什么合乎逻辑的解释吗

作为后续问题,我可以做些什么来解决它,还是应该在每个纹理周围添加一些透明填充

编辑: 我在GUI TexturePack中找到了设置。在窗口右侧的“Sprite”下,可以通过修改“Shape Padding”值来更改每个纹理之间的空间


贴图集的切割非常完美,但从纹理采样时,浮动精度可能会导致此问题。解决方案是在地图册上的图像之间留出透明的空间。如果您使用TexturePacker,这将为您完成

player.png
size: 64, 128
format: RGBA8888
filter: Nearest,Nearest
repeat: none
player1moveDown
  rotate: false
  xy: 0, 0
  size: 10, 16
  orig: 10, 16
  offset: 0, 0
  index: 1
player1moveDown
  rotate: false
  xy: 10, 0
  size: 10, 16
  orig: 10, 16
  offset: 0, 0
  index: 2
player1moveDown
  rotate: false
  xy: 20, 0
  size: 10, 16
  orig: 10, 16
  offset: 0, 0
  index: 3