我遇到与自定义字体有关的问题。 下图更好地说明了我想说的内容。
以下是我目前使用的代码段。
@Override
public void onLoadResources() {
BitmapTextureAtlas mComixLoudFontTexture = new BitmapTextureAtlas(256,
256, TextureOptions.BILINEAR_PREMULTIPLYALPHA);
mComixLoudFont = FontFactory.createFromAsset(mComixLoudFontTexture,
this, "Comix_Loud.ttf", 40, true, Color.BLACK);
BitmapTextureAtlas mLCDFontTexture = new BitmapTextureAtlas(256, 256,
TextureOptions.BILINEAR_PREMULTIPLYALPHA);
mLCDFont = FontFactory.createFromAsset(mLCDFontTexture, this,
"LCD.ttf", 40, true, Color.BLACK);
this.mEngine.getTextureManager().loadTextures(mComixLoudFontTexture,
mLCDFontTexture);
this.mEngine.getFontManager().loadFonts(mComixLoudFont, mLCDFont);
}
@Override
public Scene onLoadScene() {
mScene = new Scene();
mScene.setBackground(new ColorBackground(0.09804f, 0.6274f, 0.8784f));
mScene.attachChild(new Text(230, 100, mComixLoudFont, "Comix Loud Font"));
mScene.attachChild(new Text(230, 200, mLCDFont, "LCD Font"));
return mScene;
}
在某些字体类型中,它会产生问题,而在某些字体类型中,它会完美运那么在这种情况下该怎么做?我已经设置了大的纹理图集大小,但它对我不起作用。
感谢您的努力。
答案 0 :(得分:0)
您有两种方法可以解决此问题。
1)您可以使用Bitmap Font Generator或Glyf Designer等实用程序手动创建位图字体纹理,然后使用BitmapFont类加载它。我认为这是最好的选择。
2)你需要在文本位图上增加填充变量,这样它就不会切断顶部。我不确定这会有效。但理论上它会扩展所有字母周围的区域,并使每个字中的字母间隔开。不是最好的选择。