Menu
CoddyTech

画像を読み込む

CoddyのPygameジャーニー「スプライトと画像」セクションの一部。レッスン 1/36。

ゲームでは形だけでなく、画像も描画します。画像は画像ファイルから読み込まれ、pygameによってSurfaceに変換されます。これはウィンドウと同じ種類のもので、描画できるピクセルの格子です。

ship = pygame.image.load("assets/images/ship.png").convert_alpha()

パスはmain.pyからの相対パスです。ゲームと同じ階層にassetsフォルダーがあり、ゲームの横にあるAssetsタブには、その中のすべてのファイルが表示されます。

convert_alpha()は画像をウィンドウ独自のピクセル形式にコピーするため、毎フレーム描画しても高速で、透過ピクセルも保持されます。ウィンドウが必要なので、set_modeの後に画像を読み込んでください。画像はループの前に一度だけ読み込みます。ファイルを1秒間に60回読み込むと、ゲームの動作が遅くなります。

画像を描画するには、ウィンドウにblitします。位置は画像の左上隅が置かれる場所です。

screen.blit(ship, (288, 208))

screen.fill(...)の後にblitしてください。そうしないと、塗りつぶしで画像が上書きされます。

challenge icon

チャレンジ

簡単
  1. set_modeの後に、assets/images/ship.pngを.convert_alpha()で読み込み、shipという名前の変数に格納します。
  2. ループ内で、塗りつぶしの後に、左上の角が(288, 208)になる位置にshipをblitします。船は64×64ピクセルなので、640×480のウィンドウの中央に配置されます。

自分で試してみよう

import pygame

pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Space Images")
clock = pygame.time.Clock()

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    screen.fill((20, 22, 40))
    pygame.display.flip()
    clock.tick(60)

pygame.quit()

スプライトと画像のすべてのレッスン

自分で練習してみよう: Pygameプレイグラウンド