1
現在、pygameを使ってファイルからテキストをスクリーンに読み込もうとしています。しかし、非標準のUnicode文字(つまり、日本のhirigana)をレンダリングしようとすると、ランダムな文字とボックスの組み合わせでしか応答しません。私は見つけることができ、何も働かないものをすべて探しました。何か案は?ファイルは正しくエンコードされ、UTF-8で読み込まれるため、レンダリング段階で問題が発生します。pygameでユニコードフォントをレンダリングする
マイテキストのレンダリングコード:
def text(screen, pos, text='', font=None, color=BLACK, halign='LEFT', valign='TOP'):
if font == None: font = pygame.font.Font(None,16)
draw = font.render(text.encode('utf8'), True, color)
pos = list(pos)
if halign.upper() == 'CENTER': pos[0] -= font.size(text)[0]/2
if halign.upper() == 'RIGHT': pos[0] -= font.size(text)[0]
if valign.upper() == 'CENTER': pos[1] -= font.size(text)[1]/2
if valign.upper() == 'BOTTOM': pos[1] -= font.size(text)[1]
screen.blit(draw, pos)
私はレンダリングしようとしているテキスト:
おはようございます、みんな!
編集:いくつかのテストの後、それが判明それは私が使っていたフォントだった...これらのラインに沿って、かなをサポートしているSegoe UI Lightの代替品を知っている人はいますか? Debianでは
です。 'encode()'はレンダリング用ではなく格納に適したバイナリデータを作成します。 –
私は 'encode()'の有無にかかわらず同じ問題を抱えています...何が起こっているのか分かりません(削除すると結果は[this](http://imgur.com/1YKCU4B)に変わります) – tripl3dogdare
今度は、文字の数が収まります。フォントがUnicodeまたはUnicodeブロックをサポートしていないようです。 –