2009-03-20 15 views
8

PyGameで漢字を表示するにはどうしたらいいですか?そして、この目的のために使う無料のフリーフォントは何ですか?PyGameのUnicodeフォント

答えて

0

私が知っている限り、自分で試したことはありません。PyGameは、漢字を含むUnicode文字列を渡すとちょうどよいはずです。 u '\ u4e2d \ u56fd'。

多くの適切なオープンライセンスフォントについては、http://www.unifont.org/fontguide/で「東アジア」を参照してください。

7

pygameはレンダリングにSDL_ttfを使用しているため、レンダリングが進むにつれて細かい形になるはずです。

unifont.orgは、さまざまなスクリプトに対して、オープンソースフォントに関する広範なリソースを持っているようです。

Cyber​​bit pan-unicodeフォントを取得し、取り込まれたttfを抽出しました。

# -*- 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テキストを表示しているとして、あなたは素晴らしい形にする必要があります:folowingは、Windows VistaのHome BasicとPython 2.6である「私のマシン上で働いていました」。しかし、実際にユニコード入力をユーザーから読み取る場合は、状況ははるかに荒いです。 Pygameにはどんな入力方法もありません。

+0

Pygame _does_には、私が間違っていない場合、キーストロークイベントが含まれているイベントの初歩的なサポートがあります。 'input()'を呼び出すのと同じくらい単純ではありませんが、その上にUI入力要素を構築することは可能です。また、 'pygame.scrap'を使って切り取りと貼り付けをサポートしているようです。 – SwiftsNamesake

+0

@SwiftsNamesake、私はpygameが入力を読むことができないと言っているわけではありません。むしろ、OSやその他の[入力方法](http://en.wikipedia.org/wiki/Input_method)を使用する標準的な方法はなく、キーコードのシーケンスから(たとえば、ユニコード)スクリプトを使用します。これは主に中国語やアラビア語のような英語以外の入力言語での懸念事項です。 – SingleNegationElimination

+0

私はそれを理解します。私はちょうど、あなた自身が上記の機能を実装することでこの問題を回避する方法があることを明確にしたいと思いました。 – SwiftsNamesake

関連する問題