成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Android游戲引擎libgdx使用教程3:繪制漢字與顯示中文

移動開發 Android
不知大家有沒有注意過libgdx顯示漢字的問題,其實還是非常值得關注,試想如果libgdx不支持中文,那么使用起來就很不方便了。我們來看看BitmapFont類,這是有關文字繪制的。

不知大家有沒有注意過libgdx顯示漢字的問題,其實還是非常值得關注,試想如果libgdx不支持中文,那么使用起來就很不方便了。

我們來看看BitmapFont類,這是有關文字繪制的。看一下源碼:

  1. public BitmapFont ()  
  2. {  
  3.      this(Gdx.files.classpath("com/badlogic/gdx/utils/arial-15.fnt"), Gdx.files.classpath("com/badlogic/gdx/utils/arial-15.png"), falsetrue);  
  4. }    

這是默認的構造函數,可以看出它加載了兩個文件arial-15.fnt和arial-15.png

arial-15.fnt文件的部分內容:

  1. info face="Arial" size=15 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1   
  2. common lineHeight=18 base=14 scaleW=256 scaleH=256 pages=1 packed=0   
  3. page id=0 file="arial-15.png"   
  4. chars count=189   
  5. char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=14 xadvance=4 page=0 chnl=0     
  6. char id=255 x=0 y=0 width=8 height=19 xoffset=-1 yoffset=0 xadvance=7 page=0 chnl=0     
  7. char id=254 x=8 y=0 width=9 height=19 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=0     
  8. char id=253 x=17 y=0 width=8 height=19 xoffset=-1 yoffset=0 xadvance=7 page=0 chnl=0     
  9. char id=252 x=25 y=0 width=9 height=19 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=0     
  10. char id=251 x=34 y=0 width=9 height=19 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=0     
  11. char id=250 x=43 y=0 width=9 height=19 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=0     
  12. char id=249 x=52 y=0 width=9 height=19 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=0     
  13. char id=248 x=61 y=0 width=9 height=19 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=0     
  14. char id=247 x=70 y=0 width=9 height=19 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=0     
  15. char id=246 x=79 y=0 width=9 height=19 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=0     
  16. char id=245 x=88 y=0 width=9 height=19 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=0     
  17. char id=244 x=97 y=0 width=9 height=19 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=0     
  18. char id=243 x=106 y=0 width=9 height=19 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=0     
  19. char id=242 x=115 y=0 width=9 height=19 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=0     
  20. char id=241 x=124 y=0 width=9 height=19 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=0     
  21. char id=240 x=133 y=0 width=9 height=19 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=0     
  22. char id=239 x=142 y=0 width=5 height=19 xoffset=0 yoffset=0 xadvance=3 page=0 chnl=0     
  23. …    
  24.    
  25. kernings count=374   
  26. kerning first=49 second=49 amount=-1   
  27. kerning first=121 second=44 amount=-1   
  28. kerning first=121 second=46 amount=-1   
  29. kerning first=119 second=44 amount=-1   
  30. kerning first=119 second=46 amount=-1   
  31. kerning first=118 second=44 amount=-1   
  32. kerning first=118 second=46 amount=-1   
  33. kerning first=114 second=44 amount=-1   
  34. kerning first=114 second=46 amount=-1   
  35. kerning first=89 second=44 amount=-2   
  36. kerning first=89 second=45 amount=-1   
  37. kerning first=89 second=46 amount=-2   
  38. kerning first=89 second=58 amount=-1   
  39. kerning first=89 second=59 amount=-1   
  40. kerning first=89 second=65 amount=-1   
  41. kerning first=89 second=97 amount=-1   
  42. kerning first=89 second=101 amount=-1   
  43.    
  44. …    

再看看arial-15.png:

Android游戲引擎libgdx使用教程3:繪制漢字與顯示中文

可以很明顯看出,libgdx的文字繪制是根據fnt文件獲取對應文字的在png中的坐標位置,然后截取圖片的相應部分進行繪制。

那么要讓libgdx支持中文思路就很簡單了,我們自己構造fnt和png文件,其中包含我們要使用的中文即可。

作者給我們提供了一個對應的工具:Hiero。

下載后雙擊運行,在右側列表中選擇一個可以用的字體,然后輸入需要的中文,最好保留自動生成的英文和符號。

Android游戲引擎libgdx使用教程3:繪制漢字與顯示中文

在右側的Effects中可以設置效果:

Android游戲引擎libgdx使用教程3:繪制漢字與顯示中文

點File—Save as BMFont Files,生成兩個文件,將它們拷貝到asserts文件夾。

Android游戲引擎libgdx使用教程3:繪制漢字與顯示中文

使用

  1. bitmapFont = new BitmapFont(Gdx.files.internal("cf.fnt"), Gdx.files.internal("cf.png"), false);  

指定我們生成的文件作為繪制的參考,然后繪制:

  1. bitmapFont.draw(spriteBatch, "FPS" + Gdx.graphics.getFramesPerSecond(), 5, Gdx.graphics.getHeight() - 10);  
  2. bitmapFont.draw(spriteBatch, "祝大家光棍節快樂"0, Gdx.graphics.getHeight()/2-8);    

程序運行效果:

Android游戲引擎libgdx使用教程3:繪制漢字與顯示中文

關于多行文字,可以調用

  1. public TextBounds drawMultiLine (SpriteBatch spriteBatch, CharSequence str, float x, float y)    

或者

  1. public TextBounds drawMultiLine (SpriteBatch spriteBatch, CharSequence str, float x, float y, float alignmentWidth,HAlignment alignment)
責任編輯:閆佳明 來源: jizhuomi
相關推薦

2013-12-04 13:30:45

Android游戲引擎libgdx教程

2013-12-04 17:27:10

Android游戲引擎libgdx教程

2013-12-04 16:07:27

Android游戲引擎libgdx教程

2013-12-06 10:31:14

Android游戲引擎libgdx教程

2013-12-06 09:59:53

Android游戲引擎libgdx教程

2013-12-04 17:14:57

Android游戲引擎libgdx教程

2013-12-06 10:12:49

Android游戲引擎libgdx教程

2013-12-04 16:28:29

Android游戲引擎libgdx教程

2013-12-06 10:22:42

Android游戲引擎libgdx教程

2013-12-06 10:35:28

Android游戲引擎libgdx教程

2011-07-18 11:23:29

iPhone 游戲 動畫

2012-12-24 09:07:09

iOSUnity3D

2011-07-18 10:53:09

2011-07-18 11:07:12

iPhone 游戲 引擎

2011-07-18 12:29:10

2011-07-18 11:39:58

iPhone 游戲 引擎

2014-06-03 09:35:19

Javalibgdx

2014-07-15 10:34:14

Android游戲引擎

2012-12-24 08:40:12

2014-07-17 11:10:19

Android開源游戲引擎
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 高清黄色网址 | 久久国产精品久久国产精品 | 日韩不卡一区二区三区 | 一区精品国产欧美在线 | 日韩一区二区三区在线 | 国产欧美精品区一区二区三区 | 奇米影视77| 在线成人| av免费网站在线观看 | 在线天堂免费中文字幕视频 | 国产精品一区一区三区 | 天天射天天干 | 欧美久久久久久 | 一级做a | 91精品国产乱码久久久久久久 | 日本久久久久久久久 | 久久中文一区二区 | 欧美电影在线观看网站 | 久夜精品 | 在线观看中文字幕av | 中文精品久久 | 久久成人久久 | 国产在线一区二区三区 | 日韩中文在线视频 | 91成人精品视频 | 99在线国产 | av黄色在线 | 操操日| 欧美性生活免费 | 黄色片网站在线观看 | 人人干人人超 | 每日在线更新av | www.中文字幕 | 国产欧美日韩 | 欧美精品网站 | 一区在线视频 | 中文字幕在线观看日韩 | 国产欧美在线 | 亚洲最大看片网站 | 在线午夜 | 精品一区av|