1. 程式人生 > >怎樣在pygame中顯示中文

怎樣在pygame中顯示中文

      在pygame中,顯示文字是挺麻煩的事情,為了顯示文字,需要用到5、6個語句。比如為了顯示一句話:

ZiTiDuiXiang=pygame.font.Font('freesansbold.ttf',32)
WenBenKuangDuiXiang=ZiTiDuiXiang.render("Hello world!", True, GREEN)
KuangDuiXiang=WenBenKuangDuiXiang.get_rect()
KuangDuiXiang.center=(400,300)
DISPLAYSURF.blit(WenBenKuangDuiXiang,KuangDuiXiang)
pygame.display.update()

      然而,這樣子顯示,中文顯示不出來。例如如果將上述程式碼的第二句換成:

 WenBenKuangDuiXiang=ZiTiDuiXiang.render("你好!", True, GREEN)

      螢幕會顯示出:


要解決中文的顯示問題,我們有兩種方法。

第一種方法:外帶字型

       在網上下載一箇中文字型檔案,將這個檔案與我們的程式放在同一個資料夾,如果是中文的檔名,將它改成英文檔名。例如,下載了迷你簡氈筆黑.TTF,將檔名改成了mnjzbh.ttf,並將程式的第一句改成:

ZiTiDuiXiang=pygame.font.Font('mnjzbh.ttf',32)

       這樣,中文就能正確顯示了。不過,有些下載的字型檔案無法正常顯示,可以多下載幾個試試。

第二種方法:使用系統字型

      將程式的第一句更改成:

ZiTiDuiXiang=pygame.font.SysFont('SimHei',32)

      也就是用SysFont代替Font,並且使用系統自帶字型,也可以正常顯示中文。

      不過,系統自帶有很多字型,要選擇其中的中文字型。如何檢視系統帶了哪些字型呢?

      可以使用:

ZiTi=pygame.font.get_font()

for i in ZiTi:

   print(i)

     來檢視所有系統字型。