怎样在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)

     来查看所有系统字体。


评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值