怎樣在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)
來檢視所有系統字型。