Как сделать текст на хинди в Libgdx?

Как отобразить текст на хинди в libgdx, используя mangal.ttf или любой другой шрифт. Квадратные коробки появляются, когда вы пытаетесь напечатать текст на хинди.

2 ответа

Решение

Мы можем использовать шрифт "Chanakya" для правильного отображения текста на хинди. Загрузите chanyaka.ttf от hera:

http://indiatyping.com/index.php/download/199-chanakya-font

После установки шрифта. Вы должны закодировать свой текст на хинди, используя обложку:

http://indiatyping.com/index.php/font-converter/unicode-to-chanakya-font-converter

После преобразования текста, просто скопируйте его в пункт назначения, и вы должны быть готовы

Наслаждаться:)

Попробуйте FreeTypeFont, FreetypeFont доступен в репозитории maven, так что вы можете легко внедрить зависимость через gradle в ваш проект и использовать в своем коде.

public class MyGdxGame extends Game {

    SpriteBatch spriteBatch;
    BitmapFont font;
    OrthographicCamera camera;
    GlyphLayout glyphLayout,glyphLayout1;
    String text,text1;

    @Override
    public void create() {

        camera=new OrthographicCamera();
        camera.setToOrtho(false,400,640);
        spriteBatch = new SpriteBatch();

        FreeTypeFontGenerator generator = new FreeTypeFontGenerator(Gdx.files.internal("Mangal.ttf"));
        FreeTypeFontGenerator.FreeTypeFontParameter parameter = new FreeTypeFontGenerator.FreeTypeFontParameter();

        parameter.color = Color.WHITE;
        parameter.magFilter = Texture.TextureFilter.Linear; // used for resizing quality
        parameter.minFilter = Texture.TextureFilter.Linear;

        //ँंंःअआइईउऊऋएऐऑओऔकखगघचछजझञटठडढणतथदधनपफबभमयरलवशषसह़ािीुूृॅेैॉोौ्
        parameter.characters = "शुभ प्रभात आप का स्वागत है";  //The characters the font should contain
        parameter.size=15;
        font=generator.generateFont(parameter);
        font.getRegion().getTexture().setFilter(Texture.TextureFilter.Linear, Texture.TextureFilter.Linear);
        font.setColor(1.0f, 0.0f, 0.0f, 1.0f);

        generator.dispose();

        text="शुभ प्रभात";
        text1="आप का स्वागत है";
        glyphLayout=new GlyphLayout(font,text);
        glyphLayout1=new GlyphLayout(font,text1);
    }

    @Override
    public void render() {

        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
        Gdx.gl.glClearColor(1,1,0,1);

        spriteBatch.setProjectionMatrix(camera.combined);
        spriteBatch.begin();
        font.draw(spriteBatch,text,camera.viewportWidth*.5f-glyphLayout.width/2f,camera.viewportHeight*.5f);
        font.draw(spriteBatch,text1,camera.viewportWidth*.5f-glyphLayout1.width/2f,camera.viewportHeight*.4f);

        spriteBatch.end();
    }

    @Override
    public void resize(int width, int height) {
        camera.setToOrtho(false,width,height);
    }

    @Override
    public void dispose() {
        font.dispose();
        spriteBatch.dispose();
    }
}

Вывод выглядит так:

Другие вопросы по тегам