Я пытаюсь воссоздать свой крошечный проект python/pygame, чтобы включить несколько языков, и одна из проблем, с которыми я столкнулся, заключается в том, что по какой-то причине акценты, тильды и т. д. обрезаются сверху, поэтому только 1 или 2 пикселя их видно. Это относится к большинству прописных букв с акцентом в ie. Французский, польский, испанский, немецкий и т. д. Это происходит как в python 2.7.2, так и в python 3.2 с использованием шрифта pygame по умолчанию.
Попытка отобразить следующую строку: 'ÀÂÉÈÊËÎÏÔÙÛÜŸ'
приводит к полученному изображению, подобному этому:
Думаю, я использую стандартную технику рендеринга/блитинга:
# -*- 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 создает слишком маленькую поверхность, чтобы разместить дополнительное пространство, необходимое вверху? Может быть, какой-то способ установить высоту строки, но я нигде этого не нашел...
u
(в Python 3 он не будет работать), поэтому обходной путь, который вы должны сделать в этом случае, сработает. код больше не нужен для запуска как в Python 2.7, так и в 3.3. - person jsbueno   schedule 15.04.2012