我有GUI的设置比例占据整个屏幕(窗口)。 控制部件都很好,但字体缩放是可怕的-有来自邻国字形构件 (因为有些舍入误差,我想的)。
你可以很清楚地看到这对T的右侧:
我试图在Hiero填补区域设置不同的值,但所有这些价值观影响字体的呈现方式 - 他们绘制字符之间添加空格,不只是一个纹理我想要的。
任何想法如何解决这一假象? 我不想动态字体生成或多种字体, 我想普通的最近邻居缩放 (我要去一个pixely的样子)。 我假设这是libGDX 1.2.0的错误。
我有GUI的设置比例占据整个屏幕(窗口)。 控制部件都很好,但字体缩放是可怕的-有来自邻国字形构件 (因为有些舍入误差,我想的)。
你可以很清楚地看到这对T的右侧:
我试图在Hiero填补区域设置不同的值,但所有这些价值观影响字体的呈现方式 - 他们绘制字符之间添加空格,不只是一个纹理我想要的。
任何想法如何解决这一假象? 我不想动态字体生成或多种字体, 我想普通的最近邻居缩放 (我要去一个pixely的样子)。 我假设这是libGDX 1.2.0的错误。
周围的一些摆弄后,我想通需要为了得到它的工作被黑客攻破的。
要点:收缩所有字形不重叠。
我在溶液中阶 :
def fixFonts(fontsMap: ObjectMap[String, BitmapFont]) {
def fixFont(font: BitmapFont) {
for {
glyphPage <- font.getData.glyphs.toSeq.filter(_ != null)
glyph <- glyphPage.toSeq.filter(_ != null)
} {
glyph.u2 -= 0.001f
}
}
fontsMap.iterator().asInstanceOf[java.util.Iterator[Entry[String, BitmapFont]]].
asScala.foreach { e => fixFont(e.value)}
}
def load() {
skin = manager.get(SKIN_FILE)
fixFonts(skin.getAll(classOf[BitmapFont]))
}
编辑(6 4 2015):更新代码在工作Scala 2.11.4
和LibGDX 1.5.3
。
我调整monnef的上面解决Java的使用是这样的:
public static void fixFont(BitmapFont font) {
for (Glyph[] page : font.getData().glyphs) {
if (page == null) {
continue;
}
for (Glyph glyph : page) {
if (glyph == null) {
continue;
}
glyph.u2 -= 0.001f;
glyph.v2 -= 0.001f;
}
}
}
需要注意的是另外glyph.v2被调整过,没有这个我仍然有瑕疵。
注:这是一个解决办法,应该可能通过编辑字体是固定的。