web-dev-qa-db-ja.com

Pythonフォントと色でテキストを表示しますか?

Pythonを使用してpygameウィンドウにテキストを表示する方法はありますか?

更新するライブ情報の束を表示する必要があり、必要な各キャラクターの画像を作成する必要はありません。

画面にテキストをブリットできますか?

51
maxhud

はい。 pygameでテキストを描くことが可能です:

# initialize font; must be called after 'pygame.init()' to avoid 'Font not Initialized' error
myfont = pygame.font.SysFont("monospace", 15)

# render text
label = myfont.render("Some text!", 1, (255,255,0))
screen.blit(label, (100, 100))
56
veiset

pygame.font.Font を使用してフォントパスを設定することにより、独自のカスタムフォントを使用できます。

pygame.font.Font(filename, size): return Font

例:

pygame.font.init()
font_path = "./fonts/newfont.ttf"
font_size = 32
fontObj = pygame.font.Font(font_path, font_size)

次に、上記のveisetの答えのように、fontObj.renderを使用してフォントをレンダリングし、表面にブリットします。 :)

9
Technohazard

ゲームにライブスコアを表示するコードがあります。素早くアクセスするための機能です。

def texts(score):
   font=pygame.font.Font(None,30)
   scoretext=font.render("Score:"+str(score), 1,(255,255,255))
   screen.blit(scoretext, (500, 457))

そして、whileループでこれを使用して呼び出します:

texts(score)
6
mechanicarts

テキストサーフェスをキャッシュし、ダーティな場合にのみ再レンダリングするラッパーを作成しました。 googlecode/ninmonkey/nin.text/demo /

2
ninMonkey