コンテンツにスキップ

Pythonチュートリアル: pygameの使い方を簡単に解説

[

Pygame チュートリアル

Background and Setup

SDL (Simple DirectMedia Layer)とは、システムのマルチメディアハードウェアコンポーネント(音声、ビデオ、マウス、キーボード、ジョイスティックなど)にクロスプラットフォームでアクセスするためのライブラリです。Pygameは、SDLライブラリのPythonラッパーであり、ゲームやリッチメディアのPythonプログラムをさまざまなプラットフォームで開発することができます。

まず、 pygame をインストールするために、適切な pip コマンドを使用します。

ターミナルウィンドウ
$ pip install pygame

インストールが完了したら、ライブラリに付属しているサンプルをロードして確認します。

ターミナルウィンドウ
$ python3 -m pygame.examples.aliens

ゲームウィンドウが表示されれば、pygame は正しくインストールされています。問題が発生した場合は、以下の手順を確認してください。

Basic PyGame Program

まずは、基本的な PyGame プログラムを作成してみましょう。

import pygame
import sys
# PyGame の初期化
pygame.init()
# ウィンドウのサイズ
size = width, height = 640, 480
# 新しいウィンドウを作成
screen = pygame.display.set_mode(size)
# ゲームループ
while True:
# イベントの処理
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
# 画面を白色で塗りつぶす
screen.fill((255, 255, 255))
# 画面を更新
pygame.display.flip()

このコードでは、pygame ライブラリをインポートし、PyGame を初期化します。そして、ウィンドウを作成し、ゲームループを開始します。ゲームループ内では、イベントを処理し、画面を更新する処理を行っています。

このプログラムを実行すると、ウィンドウが表示され、白色で塗りつぶされた画面が表示されます。ウィンドウを閉じるとプログラムが終了します。

PyGame の概念

PyGame にはさまざまな概念があります。以下では、初期化とモジュール、ディスプレイとサーフェス、画像と矩形について説明します。

初期化とモジュール

PyGame を使用する前に、初期化を行う必要があります。

import pygame
# PyGame の初期化
pygame.init()

初期化後、各種モジュールを使用することができます。

ディスプレイとサーフェス

PyGame を使用する際には、ディスプレイとサーフェスを設定する必要があります。

import pygame
# PyGame の初期化
pygame.init()
# ウィンドウのサイズ
size = width, height = 640, 480
# 新しいウィンドウを作成
screen = pygame.display.set_mode(size)

このコードでは、ウィンドウのサイズを指定し、pygame.display.set_mode() 関数を使用して新しいウィンドウを作成しています。

画像と矩形

PyGame では、画像と矩形を表示することができます。

import pygame
# PyGame の初期化
pygame.init()
# ウィンドウのサイズ
size = width, height = 640, 480
# 新しいウィンドウを作成
screen = pygame.display.set_mode(size)
# 画像の読み込み
image = pygame.image.load("image.png")
# 矩形の作成
rect = image.get_rect()
# 画像を表示
screen.blit(image, rect)

このコードでは、pygame.image.load() 関数を使用して画像を読み込み、image.get_rect() 関数を使用して矩形オブジェクトを作成しています。screen.blit() 関数を使用して画像を表示します。

レーザーシューターゲームの作成

PyGame を使用して、レーザーシューターゲームを作成してみましょう。

import pygame
import sys
# レーザーシューターゲームのクラス
class LaserShooterGame:
def __init__(self):
# PyGame の初期化
pygame.init()
# ウィンドウのサイズ
size = width, height = 800, 600
# 新しいウィンドウを作成
self.screen = pygame.display.set_mode(size)
# ゲームループ
self.game_loop()
def game_loop(self):
# ゲームループ
while True:
# イベントの処理
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
# 画面を黒色で塗りつぶす
self.screen.fill((0, 0, 0))
# 画面を更新
pygame.display.flip()
# メイン関数
def main():
game = LaserShooterGame()
# メイン関数を呼び出す
if __name__ == "__main__":
main()

このコードでは、LaserShooterGame クラスを作成し、PyGame を初期化してウィンドウを作成します。ゲームループ内では、イベントを処理し、画面を更新します。

このプログラムを実行すると、ウィンドウが表示され、黒色で塗りつぶされた画面が表示されます。ウィンドウを閉じるとプログラムが終了します。

結論

本記事では、PyGame の基本的な使い方について説明しました。PyGame を使用することで、ゲームやリッチメディアのPythonプログラムを開発することができます。さらに詳しい情報やサンプルコードは、公式のドキュメントやリファレンスを参照してください。