【发布时间】:2017-04-19 21:26:43
【问题描述】:
在使用 libGDX 时,我注意到有时我绘制到屏幕上的纹理不会被绘制到确切的像素,而是使用来自其他纹理的边缘的微小部分在各个侧面进行绘制(例如,这里头发顶部的单行像素被渲染到玩家脚下)。
当我将游戏缩放到不同大小时,黑线出现在我只能假设是相邻纹理的两侧。
在尝试从 TextureAtlas 文件的文本字段中渲染字体时,我遇到了同样的问题。
我正在使用最近邻从 TextureAtlas 加载这些纹理。这是我的精灵表,这些是我的 TextureAtlas 从精灵表中做出的选择
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
对于为什么我的 TextureAtlas 不能完美地切割图像,有什么合乎逻辑的解释吗?
作为一个后续问题,我可以做些什么来解决它,或者我应该求助于在每个纹理周围添加一些透明填充?
编辑: 我在 GUI TexturePacker 中找到了设置。在窗口的右侧,在“Sprite”下,您可以通过修改“Shape Padding”值来更改每个纹理之间的空间
【问题讨论】:
标签: java graphics libgdx spritebatch