快速查看本机有哪些支持中文的字体:
import pygame
import os
# 初始化 Pygame
pygame.init()
# 获取系统中的所有字体
available_fonts = pygame.font.get_fonts()
# 中文测试字符
test_text = "测试中文"
# 创建显示窗口
window_width = 640
window_height = 480
screen = pygame.display.set_mode((window_width, window_height))
pygame.display.set_caption("Font Test")
# 白色背景
screen.fill((255, 255, 255))
# 定义字体相关参数
font_size = 24
line_spacing = 5
text_color = (0, 0, 0)
# 计算每页显示的字体数量
fonts_per_page = window_height // (font_size + line_spacing)
# 初始页数和滚动位置
current_page = 0
scroll_y = 0
# 主循环
running = True
while running:
# 处理事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
elif event.type == pygame.MOUSEBUTTONDOWN:
if event.button == 4: # 鼠标滚轮向上滚动
if current_page > 0:
current_page -= 1
elif event.button == 5: # 鼠标滚轮向下滚动
if current_page < len(available_fonts) // fonts_per_page:
current_page += 1
# 填充白色背景
screen.fill((255, 255, 255))
# 计算当前页面显示的字体范围
start_index = current_page * fonts_per_page
end_index = min(start_index + fonts_per_page, len(available_fonts))
# 显示字体列表
y = 0
for i in range(start_index, end_index):
font_name = available_fonts[i]
try:
# 使用当前字体
font = pygame.font.SysFont(font_name, font_size)
# 渲染测试文本
text_surface = font.render(f'{i} - {test_text} - {font_name}', True, text_color)
# 在屏幕上绘制文本
screen.blit(text_surface, (10, y))
y += text_surface.get_height() + line_spacing
except:
# 如果字体不支持中文或渲染失败,忽略错误
continue
# 更新显示
pygame.display.flip()
# 退出 Pygame
pygame.quit()