PyGam中的Unicode字体

2024-04-25 22:49:59 发布

您现在位置:Python中文网/ 问答频道 /正文

如何在PyGame中显示汉字?有什么好的free/libre字体可以用于此目的呢?


Tags: 目的free字体pygamelibre
2条回答

据我所知 - 而且我自己也没有尝试过 - PyGame应该只在您传递包含中文字符的Unicode字符串时起作用,例如u'\u4e2d\u56fd'。

请参阅http://www.unifont.org/fontguide/下的“东亚”以获取许多合适的开放许可证字体。

pygame使用SDL_ttf进行渲染,因此在渲染过程中应该保持良好的状态。

unifont.org似乎有一些关于一系列脚本的开源字体的丰富资源。

我抓起Cyberbit pan unicode字体,提取了隐藏的ttf。下面的“在我的机器上工作”是Windows Vista Home Basic和Python 2.6:

# -*- coding: utf-8 -*-

import pygame, sys


unistr = u"黒澤 明"
pygame.font.init()
srf = pygame.display.set_mode((640,480))
f = pygame.font.Font("Cyberbit.ttf",20)
srf.blit(f.render(unistr,True,(0,0,0)),(0,0))
pygame.display.flip()

while True:
    srf.blit(f.render(unistr,True,(255,255,255)),(0,0))
    for e in pygame.event.get():
        if e.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

只要你只是显示unicode文本,你应该是在奇妙的形状。然而,如果您真的想从用户那里读取unicode输入,那么情况就更糟了。Pygame没有任何类型的输入方法。

相关问题 更多 >