2017-04-12 25 views

回答

0

尝试FreeTypeFont,FreetypeFont在Maven存储库中可用,因此您可以通过gradle轻松地在项目中使用inject dependency并在您的代码中使用。

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(); 
    } 
} 

输出看起来是这样的:

​​

+0

在运行你的代码..在了这个线程异常“LWJGL申请”了java.lang.RuntimeException:“?”键与名称已经在地图 \t在com.badlogic.gdx.graphics.g2d.PixmapPacker.pack(PixmapPacker.java:162) \t在com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator.generateData(FreeTypeFontGenerator.java: 404) \t在com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator.generateFont(FreeTypeFontGenerator.java:153) \t在com.vector.science11.MyGdxGame.create(MyGdxGame.java:37) – arv

+0

感谢您的回答,但你的输入和输出字符不完全相同。就像输出中的输出字是不同的。 – arv

+0

甚至स्वागत不如在我的文字 – Aryan