コンテンツにスキップ

Pygame入門

1.Pygameの特徴

Pygameは、Pythonで2Dゲームを制作する際の最も有名なゲームライブラリです。Pygameを使えば、Pythonで容易に2Dゲームを作ることができます。

2.公式ページ

本ページではサンプルプログラムで典型的な使用例を示しているだけなので、詳細は公式ページをご覧ください。(★マークは私の独自評価)

英語:

トップページ★(ニュースなどの最新情報はあるが、使い方については情報がない)

https://www.pygame.org/news

ドキュメント・ページ★★★(クイックスタートなど、使い方についての情報がある)

https://www.pygame.org/docs/

Pygameのトップレベルパッケージ★★(トップレベルの関数の説明。ページ上部にその他の関数へのリンクがある)

https://www.pygame.org/docs/ref/pygame.html

日本語:

参考ページ

hello, pygame (東北大学• コンピュータ実習I)★★★(懇切丁寧。悩み相談あり)

【Pygame入門】ゲームプログラミング【Python】 (西住工房(改))★★★(サンプル多数)

Pythonでゲーム作りますが何か?aidiary)★★(ゲームサンプル多数)

初心者のための pygame ガイド ★★(現場開発者の実用的なノウハウが満載)

pygame日本語ドキュメント ★★(Pygame DocumentationのうちReferenceを翻訳)

3.準備

Pygameライブラリは外部ライブラリなのでインストールが必要です。

詳細なインストール手順については、外部ライブラリのインストール方法を参照してください。

エディタにThonnyを使っている場合

Thonnyのメニューの「ツール」の「Manege Packages…」を選択。表示されたウィンドウでの入力欄に「pygame」と入れて「Search on PyPI」(または「PyPIでパッケージを検索」)ボタンをクリック。そこで出てきたSearch resultsの中から「pygame」をクリック。pygameについての表示になったら、「インストール」をクリックすればOK。

エディタにThonnyを使っていない場合

コマンドプロンプトを起動し、「python -m pip install pygame」と打ちます。

python -m pip install pygame

4.サンプルプログラム

プログラム

# パート 1 - インポート
import pygame
# パート 2 - セットアップ
pygame.init()
screen = pygame.display.set_mode((1000, 700))
running = True
player_pos = pygame.Vector2(screen.get_width() / 2, screen.get_height() / 2)
# パート 3- イベントループ
while running:
# ウィンドウが右上の×印で閉じられた場合は終了
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# ウィンドウに背景と円を表示
screen.fill("gray")
pygame.draw.circle(screen, "green", player_pos, 40)
# キー入力の取得と円の位置の更新
keys = pygame.key.get_pressed()
if keys[pygame.K_w]:
player_pos.y -= 0.5
if keys[pygame.K_s]:
player_pos.y += 0.5
if keys[pygame.K_a]:
player_pos.x -= 0.5
if keys[pygame.K_d]:
player_pos.x += 0.5
# 表示を更新する
pygame.display.flip()
# パート 4 - ウィンドウクローズ
pygame.quit()

(出典:Pygame フロントページ ※解説用に一部編集)

出力例

Pygame-01-01.png

解説

  • パート 1 - インポート

    このプログラムでライブラリPygameを使えるようにインポートします。

  • パート 2 - セットアップ

    pygame.init()でpygame モジュールを初期化します。

    pygame.display.set_modeでウィンドウサイズを(1000, 700)と指定します。

    変数runningをTrueに設定し、ウィンドウの中央に円を描くように座標値を設定します。

  • パート 3- イベントループ

    ユーザーからの入力(event)を取得し、内容を確認します。

    ウィンドウが右上の×印で閉じられた場合は終了します。

    screen.fill()でウィンドウの背景を塗りつぶし、pygame.draw.circle()で円を表示します。

    キーの入力を取得し、円の位置を更新します。ちなみに、w:上、a:左、s:下、d:右に移動します。

    pygame.display.flip()で表示を更新します。

  • パート 4 - ウィンドウクローズ

    ウィンドウを閉じて終了します。

やってみよう

  • 画像ファイルを読み込んで、上から下へ自動的に落ちていくプログラムを作ろう