在pygame屏幕上写外国字母

时间:2017-12-11 17:39:15

标签: python encoding pygame

我有一些pygame项目,我需要包括非英文字母,特别是阿姆哈拉语字母。但事情是,即使我的文本编辑器读取和写入字母pygame似乎不理解它们,它只是把它们作为一个盒子。

这是我所制作的代码的一个简单而类似的例子:

import pygame,sys
from pygame.locals import *
#            R    G    B
BLACK    = (  0,   0,   0)
WHITE    = (255, 255, 255)
pygame.init()
fontObj = pygame.font.Font('freesansbold.ttf', 25)
screen = pygame.display.set_mode((400,400))
screen.fill(WHITE)
pygame.display.update()
while True:
    letterw= fontObj.render('በ', True, BLACK,WHITE)#this letter for example appeas as a box in the pygame screen
    #------------------------?---------------------
    letterwobj= letterw.get_rect()
    letterwobj.center = (20, 20)
    screen.blit(letterw,letterwobj)
    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            sys.exit()
    pygame.display.update()

我会感谢任何建议和帮助。

2 个答案:

答案 0 :(得分:1)

根据skrx在顶部建议的评论,我试图下载并使用名为'nyala.ttf'的字体,但这不起作用,所以我尝试导入系统nyala字体,如下fontObj = pygame.font.SysFont('nyala', 25)和它有效。

答案 1 :(得分:0)

您可以尝试使用unicode运算符:

u'በ'

或unicode函数:

unicode('በ')

但坦率地说,这主要取决于pygame是否可以呈现unicode字符。