Pygame でテキストを表示する

Maxim Maeder 2023年6月21日
  1. Pygame にフォントをインポートする
  2. Pygame でテキストを表示する
Pygame でテキストを表示する

このチュートリアルでは、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() メソッドを使用します。ここで、いくつかの興味深いものを提供できます。

  1. まず、書き込まれるテキストを渡します。
  2. 次に、テキストをアンチエイリアスするかどうかを指定します。
  3. 最後に、テキストの色を 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
Maxim Maeder avatar Maxim Maeder avatar

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