Pygameで使うフォントの一覧を表示しよう
Pygameではフォントを使うことができます。
Pygameで使えるフォントの一覧を表示するには、pygame.font.get_fonts()関数を使います。
戻り値にフォントのリストを返します。
pygame.font.get_fonts()
そのまま関数を実行すると、リストが固まりとして出力されてしまうので、フォント名を一行ずつ表示するスクリプトです。
1 2 3 4 |
import pygame for x in pygame.font.get_fonts(): print(x) |
実行例
> font1.py
pygame 1.9.6
Hello from the pygame community. https://www.pygame.org/contribute.html
arial
arialblack
bahnschrift
:
:
フォントを確認しよう
上記のスクリプトで使えるフォントは分かりましたが、そのフォントがどんな形なのかは実際に出力させる必要があります。
以下のスクリプトは、実際にフォントを表示させます。
上下のカーソルキーを使って、表示するフォントを切り替えます。
エスケープ(Esc)キーか、画面右上の✕(バツ)ボタンを押すとスクリプトは終了します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
### インポート import sys import pygame from pygame.locals import * ### 画面初期化 pygame.init() surface = pygame.display.set_mode((960, 320)) ### キーリピート設定 pygame.key.set_repeat(100,100) ### フォントリスト取得 list = [] for x in pygame.font.get_fonts(): list.append(x) ### リスト位置初期化 i = 0 ### 無限ループ while True: ### 背景色設定 surface.fill((0,0,0)) ### フォント設定 font = pygame.font.SysFont(list[i], 30) ### 表示文字設定 name = font.render("{}".format(list[i]), True, (255,255,255)) numb = font.render("1234567890", True, (255,255,255)) asci = font.render("ABCDEFGHIJKLMNOPQRSTUVWXYZ", True, (255,255,255)) japn = font.render("あいうえおアイウエオ山田太郎鈴木花子", True, (255,255,255)) ### 画面表示位置 surface.blit(name, [20,20]) surface.blit(numb, [20,70]) surface.blit(asci, [20,120]) surface.blit(japn, [20,170]) ### 画面更新 pygame.display.update() ### イベント取得 for event in pygame.event.get(): ### 終了処理 if event.type == QUIT: pygame.quit() sys.exit() if event.type == KEYDOWN: if event.key == K_ESCAPE: pygame.quit() sys.exit() ### フォント変更 if event.key == K_UP and i > 0: i -= 1 if event.key == K_DOWN and i < len(list)-1: i += 1 |
以下は実行例です