【Pygame入門】ゲームプログラミング【Python】

Pygameは、Pythonで2Dゲームを制作する際の最も有名なゲームライブラリです。Pythonで2Dゲームを作るには、ゲームライブラリを使うのが一般的です。
例えば次のようなブロック崩しゲームならば160行くらいのソースコードで作成できます。

ソースコード・解説 → 【Pygame】ブロック崩しの作り方

Python用ゲームモジュール「Pygame」でゲームプログラミングする方法を入門者向けに解説しています。

【基礎編】画面設定、画像と図形の描画、イベント処理、スプライト管理、音声処理

画面設定、画像と図形の描画、イベント処理、スプライト管理、音声処理など、Pythonモジュール「pygame」の基礎的な使い方については個別に記事で解説しています。
各記事へのリンクと概要を以下の表に整理しました。

動画解説

本ページの内容は以下動画でも解説しています。

記事リンク 概要
インストール Pygameモジュールをインストールする方法について解説します。
画面設定 画面サイズ、タイトル、背景色、文字、フルスクリーンの有効化などの設定方法を解説します。
図形描画 円、直線、長方形などの図形を描画する方法について解説します。
画像描画 背景や主人公などの画像を描画する方法について解説します。
キー操作 矢印キー操作する方法について解説します。
キー操作(長押し) 矢印キー操作(長押し)する方法について解説します。
キャラクター操作 矢印キーでキャラクター操作する方法について解説します。
長押しでキャラクター操作 矢印キー(長押し)でキャラクター操作する方法について解説します。
マウスクリックで操作 マウスクリックでキャラクター操作する方法について解説します。
マウスクリック(長押し)で操作 マウスクリック(長押し)でキャラクター操作する方法について解説します。
マウスポインタで操作 マウスポインタでキャラクター操作する方法について解説します。
MP3ファイルの再生 BGMやSEをゲームに入れるためのMP3ファイルの再生を行う方法を解説します。
WAVファイルの再生 BGMやSEをゲームに入れるためのWAVファイルの再生を行う方法を解説します。

スプライト管理

スプライトとは、キャラクターを低いCPU負荷で滑らかに動かすグラフィック技術のことです。これまでにもキャラクターの操作(移動や回転など)を行ってきましたが、複数のキャラクターを扱うとコード量がどんどん増えていく問題があります。Pygameでは「pygame.sprite」を使うとスプライトの管理、描画、衝突判定等を簡単にできます。キャラクター操作に関する各種機能をスプライトクラスとして1つにまとめ、複数のキャラクターを扱いやすくします。

記事リンク 概要
スプライト
スプライトグループ スプライトグループの使い方を解説します。
スプライトグループ(デフォルト) スプライトグループ(デフォルト)の使い方を解説します。
スプライトグループ(高速描画) スプライトグループ(高速描画)の使い方を解説します。

【応用編】ブロック崩し、卓球ゲーム(PONG)など

ブロック崩し、卓球ゲーム(PONG)など、Pythonモジュール「pygame」の応用例については個別に記事で解説しています。
各記事へのリンクと概要を以下の表に整理しました。

記事リンク 概要
ブロック崩しの作り方 ブロック崩しの作り方について解説します。
卓球ゲーム(PONG風) 卓球ゲーム(PONG風)の作り方について解説します。
デジタル時計 デジタル時計を作成します。
RPGゲーム(マップ作成) RPGゲームのマップを作成します。
レーダー レーダーの画面を作成します。
Pygame関連 Pygame公式サイトPythonでゲーム作りますが何か?
ゲーム素材(画像) RPGツクール2000無料素材旅のヤドカリシアンのゆりかごRPGツクール素材支部
ゲーム素材(BGM) H/MIX GALLERY煉獄庭園DOVA甘茶の音楽工房無料効果音素材
Python
西住工房

コメント

  1. ss より:

    Pygameの基本操作の各々にサンプルプログラム、の項がありますが
    多くのものが記載されていません。
    サンプルプログラム見たいのですが、記載していただけないでしょうか??

    • 管理人 より:

      ※ss様
      コメントありがとうございます。
      ソースコードを表示するリンクが崩れてておりました。
      申し訳ありません、今から修正します。
      ご連絡ありがとうございました。

  2. papipo より:

    「Pygameの基本操作」のサンプルプログラムに player.png 等の画像が必要ですが、これらはどこで入手できますか。

    • 管理人 より:

      ※papipo様
      コメントありがとうございます。
      「ゲーム素材(画像)」に記載されている外部サイト様より入手可能です。

  3. tk より:

    「Pygameの基本操作<」が「フルスクリーン表示」が「フリスクリーン表示」になってますよ

  4. はやたか より:

    Spriteクラスの__init__の引数はPython3ではエラーになります。注釈をつけるか、今はPython3が主流なのでPython3対応のコードに書き換えていただけると困る人が減ると思います。

    https://teratail.com/questions/195209

  5. 匿名 より:

    勉強させて頂いております。

    スプライトの作成すると
         ↑
         を?

タイトルとURLをコピーしました