【发布时间】:2014-09-03 19:46:47
【问题描述】:
我正在使用屏幕高度百分比动态生成我的字体并设置百分比(显然将来会乘以密度。
一些笔记。 我正在读取 OTF 文件。 使用最新版本的 LibGDX(版本 1.2.0)
我有以下问题: (大字体中断并且看起来非常模糊,但仅在 medium 上。Large 和 small 看起来非常清晰)
我的预设字体大小:
//Font sizes, small, med, large as a percentage of the screen.
public static float
FONT_SIZE_LARGE = 0.175f,
FONT_SIZE_MEDIUM = 0.06f,
FONT_SIZE_SMALL = 0.04f;
我的字体生成器设置
FreeTypeFontGenerator.FreeTypeFontParameter parameter = new FreeTypeFontGenerator.FreeTypeFontParameter();
FreeTypeFontGenerator generator;
this.generator = new FreeTypeFontGenerator(Gdx.files.internal(filename));
创建实际字体:
//Create a new font and add it to available font sizes.
public BitmapFont createFont(float size, float color)
{
this.parameter.size = Math.round(size);
BitmapFont bitmapFont = generator.generateFont(parameter);
bitmapFont.setColor(color);
listOfFonts.add(new FontStorage(bitmapFont, size));
return bitmapFont;
}
现在我在不同的设备上尝试了一些东西,但仍然遇到同样的问题。我想这可能是因为它不是2的力量? (字体是否需要是 2 的幂才能是偶数?)
字体是在许多不同的屏幕分辨率上绘制的,因此制作三种一定大小的位图字体是不可能的。
有人可以帮我吗?
【问题讨论】:
-
如果使用不同尺寸的单个 BitmapFont,您需要使用 mipmapping 使其在所有尺寸下看起来都很好。可能是 minFactor 的 MipMapLinearLinear。
-
我正在使用多种位图字体大小来完全匹配屏幕分辨率,但你能链接或解释一下吗?
-
哦,对不起,我误解了你在做什么。你这样做的方式是不必要的。我也不认为二的幂是你的问题。据我所知,非 POT 只会让您面临性能降低的风险(如果您使用的是旧版本的 libgdx 并使用 OpenGL ES 1.0/1.1,则可能在某些设备上出现纯黑色纹理)。我没怎么用过字体生成器,所以不知道还有什么好建议的。
-
我使用的是最新版本,完全不知道为什么它与 res 完全匹配。如果你愿意,我可以把整个源代码发给你吗?
-
我推荐去 libgdx.com 论坛。您可能会在那里找到知道答案的人。我不知道是什么导致了这个问题,所以我和你一样迷茫。
标签: java android opengl-es libgdx freetype