python如何在pygame中设置字体并显示中文详解

 更新时间:2023年01月24日 08:33:14   作者:huadong_xiaolin  
再简单的游戏界面中均涉及文字处理,下面这篇文章主要给大家介绍了关于python如何在pygame中设置字体并显示中文的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

一、查看可用字体

import pygame
print(pygame.font.get_fonts())

二、设置字体

1.使用系统字体

self.font=pygame.font.SysFont(None,48)#None系统默认字体
self.font = pygame.font.SysFont("arial", 16)

2.使用字体文件

字体文件可以外下载

self.font = pygame.font.Font("my_font.ttf", 16) #字体,字号

3.设置中文()见前2

#系统自带
self.font = pygame.font.SysFont("SimHei", 32)  # 显示中文

在网上下载一个中文字体文件,将这个文件与我们的程序放在同一个文件夹,如果是中文的文件名,将它改成英文文件名。例如,下载了迷你简毡笔黑.TTF,将文件名改成了mnjzbh.ttf,并将程序的第一句改成:

self.font=pygame.font.Font('mnjzbh.ttf',32) # 显示中文

三、附录:常见系统字体对照表

一般的中文字体名,使用拼音即可,如 仿宋fangsong, 楷体kaiti

新细明体:PMingLiU
细明体:MingLiU
标楷体:DFKai-SB
黑体:SimHei
宋体:SimSun
新宋体:NSimSun
仿宋:FangSong
楷体:KaiTi
仿宋_GB2312:FangSong_GB2312
楷体_GB2312:KaiTi_GB2312
微软正黑体:Microsoft JhengHei
微软雅黑体:Microsoft YaHei

一个应用小例子

import pygame.font

class BUtton:
    def __init__(self, ai_game, msg):
        """初始化按钮属性"""
        # msg是要在按钮上显示的文本
        self.screen = ai_game.screen
        self.screen_rect = ai_game.screen.get_rect()

        # 设置按钮的尺寸和其他属性
        self.width, self.height = 200, 50
        self.buttom_color=(0,255,0)
        self.text_color=(255,255,255)
        self.font=pygame.font.SysFont(None,48)

        #创建按钮的rect对象,并使其居中
        self.rect=pygame.Rect(0,0,self.width,self.height)
        self.rect.center=self.screen_rect.center

        #按钮的标签只创建一次
        self._pre_msg(msg)

    def _pre_msg(self,msg):
        """将msg渲染为图像,并使其在按钮上居中"""
        self.msg_image=self.font.render(msg,True,self.text_color
                                        ,self.buttom_color)
        #布尔实参指定开启还是关闭反锯齿功能,反锯齿让文本的边缘更平滑
        self.msg_image_rect=self.msg_image.get_rect()
        #让图像文本在按钮上居中
        self.msg_image_rect.center=self.rect.center

    def draw_button(self):
        """绘制一个用颜色填充的按钮,再绘制文本"""
        self.screen.fill(self.buttom_color,self.rect)
        self.screen.blit(self.msg_image,self.msg_image_rect)

附:在 Pygame 屏幕中添加文字

font = pygame.font.SysFont("freesansbold.ttf", 30)	# 30:font size
text = font.render("content", True, (0,0,0))	# (0,0,0) color of font
self.window.blit(text,(10,10))	# (10,10) rect left top

总结

到此这篇关于python如何在pygame中设置字体并显示中文的文章就介绍到这了,更多相关pygame设置字体并显示中文内容请搜索程序员之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持程序员之家!

相关文章

  • python opencv摄像头的简单应用

    python opencv摄像头的简单应用

    这篇文章主要为大家详细介绍了python opencv摄像头的简单应用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-06-06
  • 如何使用python的ctypes调用医保中心的dll动态库下载医保中心的账单

    如何使用python的ctypes调用医保中心的dll动态库下载医保中心的账单

    这篇文章主要介绍了如何使用python的ctypes调用医保中心的dll动态库下载医保中心的账单,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • 基于Python实现图片九宫格切图程序

    基于Python实现图片九宫格切图程序

    这篇文章主要为大家详细介绍了如何利用python和C++代码实现图片九宫格切图程序,文中的示例代码讲解详细,具有一定的借鉴价值,需要的可以参考一下
    2023-04-04
  • python中的IO流使用解读

    python中的IO流使用解读

    这篇文章主要介绍了python中的IO流使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • 如何利用Python实现简易的音频播放器

    如何利用Python实现简易的音频播放器

    这篇文章主要介绍了如何利用Python实现简易的音频播放器,需要用到的库有pygame和tkinter,实现音频播放的功能,供大家学习参考,希望对你有所帮助
    2022-03-03
  • Python新手必读bytearray对象使用技巧掌握

    Python新手必读bytearray对象使用技巧掌握

    Python中的bytearray是一个可变序列,通常用于存储二进制数据,它允许在不创建新的对象的情况下就地修改数据,非常适用于处理字节数据,本文将深入学习bytearray对象的使用,包括创建、修改、切片和常见应用场景
    2023-12-12
  • 解决python对齐错误的方法

    解决python对齐错误的方法

    在本篇文章里小编给大家整理的是关于python对齐错误的解决方法,需要的朋友们可以参考学习下。
    2020-07-07
  • Python音乐爬虫完美绕过反爬

    Python音乐爬虫完美绕过反爬

    这篇文章主要介绍了Python音乐爬虫完美绕过反爬的过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-08-08
  • tensorflow 用矩阵运算替换for循环 用tf.tile而不写for的方法

    tensorflow 用矩阵运算替换for循环 用tf.tile而不写for的方法

    今天小编就为大家分享一篇tensorflow 用矩阵运算替换for循环 用tf.tile而不写for的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • Python 多线程超详细到位总结

    Python 多线程超详细到位总结

    线程在程序中是独立的、并发的执行流。与分隔的进程相比,进程中线程之间的隔离程度要小,它们共享内存、文件句柄和其他进程应有的状态。线程的划分尺度小于进程,使多线程程序的并发性高。进程在执行过程中拥有独立内存单元,而多个线程共享内存,从而提升程序运行效率
    2021-11-11

最新评论

?


http://www.vxiaotou.com