我正在尝试重新创建我的小型 python/pygame 项目以包含多种语言,我遇到的问题之一是由于某种原因,重音符号、波浪线等被从顶部裁剪,因此只有 1 或 2 个像素它们是可见的。这适用于 ie 中的大多数“重音”大写字母。法语、波兰语、西班牙语、德语等。这发生在 python 2.7.2 和 python 3.2 中,使用默认的 pygame 字体。
尝试呈现以下字符串:'ÀÂÉÈÊËÎÏÔÙÛÜŸ'
得到这样的渲染图像:
我想,我使用的是标准渲染/blitting 技术:
# -*- coding: utf-8 -*-
#...
value = 'ÀÂÉÈÊËÎÏÔÙÛÜŸ'
if sys.version_info < (3, 0):
try:
val = unicode(value, "utf-8")
except UnicodeDecodeError:
val = value
text = font.render("%s" % (val), 1, font_color)
else:
val = value
text = font.render("%s" % (val), 1, font_color)
self.image.blit(text, (300,300))
#...
以前有人遇到过这个问题吗?任何解决方法?或者仅仅是 pygame.font.render 创建的表面太小而无法容纳顶部所需的额外空间?也许某种方式来设置行高,但我还没有找到任何地方......