首頁 > 軟體

python如何在pygame中設定字型並顯示中文詳解

2023-01-24 14:02:01

一、檢視可用字型

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設定字型並顯示中文內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com