自定义字体截止

时间:2013-07-14 14:16:44

标签: andengine

我遇到与自定义字体有关的问题。 下图更好地说明了我想说的内容。

enter image description here

以下是我目前使用的代码段。

    @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;
    }

在某些字体类型中,它会产生问题,而在某些字体类型中,它会完美运那么在这种情况下该怎么做?我已经设置了大的纹理图集大小,但它对我不起作用。

感谢您的努力。

1 个答案:

答案 0 :(得分:0)

您有两种方法可以解决此问题。

1)您可以使用Bitmap Font GeneratorGlyf Designer等实用程序手动创建位图字体纹理,然后使用BitmapFont类加载它。我认为这是最好的选择。

2)你需要在文本位图上增加填充变量,这样它就不会切断顶部。我不确定这会有效。但理论上它会扩展所有字母周围的区域,并使每个字中的字母间隔开。不是最好的选择。