在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)
来查看所有系统字体。