Как сделать текст на хинди в 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();
}
}
Вывод выглядит так: