您好我正在编辑。目前我想要包含一个Font类,它可以加载ttf并生成3种尺寸的bitmapFonts(Small,Normal,Large)。它们也将通过缩放(用户设置字体比例的选项)。 可以在字体目录中添加字体以向编辑器添加新内容。
FTFLoader示例:
FreeTypeFontLoaderParameter size16 = new FreeTypeFontLoaderParameter;
size16.fontFileName = filePath;
size16.fontParameters.size = 16 * scale;
manager.load(name16, BitmapFont.class, size16);
FreeTypeFontLoaderParameter size32 = new FreeTypeFontLoaderParameter;
size32.fontFileName = filePath;
size32.fontParameters.size = 32 * scale;
manager.load(name32, BitmapFont.class, size32);
FreeTypeFontLoaderParameter size48 = new FreeTypeFontLoaderParameter;
size48.fontFileName = filePath;
size48.fontParameters.size = 48 * scale;
manager.load(name48, BitmapFont.class, size48);
现在如果我要使用它,如果用户更改了字体大小,我必须卸载旧的ttf / bitmapFonts并再次加载它们,原因是为每种字体创建一个新的FTFLoaderParameter。
我的想法是使用游泳池:
private void reloadALL(int scale) {
for (int i = 0; i < names.size; i++) {
unload(names.get(i));
}
for (int i = 0, j = 0; i < filePaths.size; i++, j+=3) {
FreeTypeFontLoaderParameter size16 = parameterPool.obtain();
size16.fontFileName = filePaths.get(i);
size16.fontParameters.size = 16 * scale;
manager.load(names.get(j), BitmapFont.class, size16);
FreeTypeFontLoaderParameter size32 = parameterPool.obtain();
size32.fontFileName = filePaths.get(i);
size32.fontParameters.size = 32 * scale;
manager.load(names.get(j+1), BitmapFont.class, size32);
FreeTypeFontLoaderParameter size48 = parameterPool.obtain();
size48.fontFileName = filePaths.get(i);
size48.fontParameters.size = 48 * scale;
manager.load(names.get(j+2), BitmapFont.class, size48);
}
}
但我不确定这是好处还是会引起问题。我从来没有使用过Pool类,如果这是一个有问题的资产管理器,那么请阅读Pool Caveats吗?