Pygame でテキストを表示する
Maxim Maeder
2023年6月21日
このチュートリアルでは、Pygame でテキストを描画する方法を説明します。
ここに表示されるコードは、有効な Pygame ウィンドウの完全なコードではありません。 必要最小限のフレームワークに興味がある場合は、この 記事 を参照してください。
Pygame にフォントをインポートする
何かを書く前に、フォントをインポートする必要があります。 これには 2つの方法があります。pygame.font.SysFont(fontname, size)
を使用して Windows の fonts フォルダーに表示されているフォント名を指定するか、pygame.font.Font(font_file_path, size)
フォント ファイルのパスを指定する必要があります。
以下の例ではまず font
関数を呼び出しますが、font
オブジェクトを SysFont
オブジェクトで上書きします。 最初の関数は、現在の作業ディレクトリに rocks
フォント ファイルがない限り機能しません。
# or Font File in Directory
font = pygame.font.Font("rocks.ttf", 30)
# System Font
font = pygame.font.SysFont("Garamond", 30)
Pygame でテキストを表示する
フォントをインポートしたら、それに対して render()
メソッドを使用します。ここで、いくつかの興味深いものを提供できます。
- まず、書き込まれるテキストを渡します。
- 次に、テキストをアンチエイリアスするかどうかを指定します。
- 最後に、テキストの色を RGB 方式で設定します。 私たちが行ったことはすべて、メインループの前にあることに注意してください。
textsurface = font.render("Some Text", False, (200, 200, 200))
メイン ゲーム ループでは、画面オブジェクトで blit
関数を呼び出してから、目的の位置で作成した textsurface
を渡すことができます。
# keep in mind this code is in the main loop.
screen.blit(textsurface, (100, 100))
完全なサンプルコード
# Imports
import sys
import pygame
# Configuration
pygame.init()
fps = 60
fpsClock = pygame.time.Clock()
width, height = 640, 480
screen = pygame.display.set_mode((width, height), pygame.RESIZABLE)
# or Font File in Directory
font = pygame.font.Font("rocks.ttf", 30)
# System Font
font = pygame.font.SysFont("Garamond", 30)
textsurface = font.render("Some Text", False, (200, 200, 200))
# Game loop.
while True:
screen.fill((20, 20, 20))
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
screen.blit(textsurface, (100, 100))
pygame.display.flip()
fpsClock.tick(fps)
著者: Maxim Maeder
Hi, my name is Maxim Maeder, I am a young programming enthusiast looking to have fun coding and teaching you some things about programming.
GitHub