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 ■甘茶の音楽工房 ■無料効果音素材 |
コメント
Pygameの基本操作の各々にサンプルプログラム、の項がありますが
多くのものが記載されていません。
サンプルプログラム見たいのですが、記載していただけないでしょうか??
※ss様
コメントありがとうございます。
ソースコードを表示するリンクが崩れてておりました。
申し訳ありません、今から修正します。
ご連絡ありがとうございました。
「Pygameの基本操作」のサンプルプログラムに player.png 等の画像が必要ですが、これらはどこで入手できますか。
※papipo様
コメントありがとうございます。
「ゲーム素材(画像)」に記載されている外部サイト様より入手可能です。
「Pygameの基本操作<」が「フルスクリーン表示」が「フリスクリーン表示」になってますよ
※tk様
コメントありがとうございます。
該当箇所を修正しました。
Spriteクラスの__init__の引数はPython3ではエラーになります。注釈をつけるか、今はPython3が主流なのでPython3対応のコードに書き換えていただけると困る人が減ると思います。
https://teratail.com/questions/195209
※はやたか様
コメントありがとうございます。
Python3でも動くようコードを修正致しました。
勉強させて頂いております。
スプライトの作成すると
↑
を?
ご指摘ありがとうございます!(*^^*)
貴サイトでPythonの学習を始めて、ウルトラ超初心者です。
開発環境は、Windows10(Home) VsCode
貴サイト、
【基礎編】画面設定、画像と図形の描画、イベント処理、スプライト管理、音声処理
で、学習を始めました。
具体的には、コードをコピーする程度です。
が、”記事リンク”13項目の内、7項目が上手くいきません。
どの項目が、上手くいかないのかというと、
④、⑦、⑧、⑨、⑩、⑪、⑫です。
(番号は、私が勝手にふりました。)
具体的には、
④【Pygame】主人公と背景の描画にて、「ターミナル」実行すると、
・黒い画面が…パット現れるだけ。
・「エラー」もなし。
で、下記に「ターミナル」に表示されたのを記します。
”PS C:\Users\genki\OneDrive\デスクトップ\Python> & C:/Users/genki/AppData/Local/Programs/Python/Python39/python.exe c:/Users/genki/OneDrive/デスクトップ/Python/game.py
pygame 2.0.1 (SDL 2.0.14, Python 3.9.1)
Hello from the pygame community. https://www.pygame.org/contribute.html
Traceback (most recent call last):
File “c:\Users\genki\OneDrive\デスクトップ\Python\game.py”, line 40, in
main()
File “c:\Users\genki\OneDrive\デスクトップ\Python\game.py”, line 14, in main
bg = pygame.image.load(“bg.jpg”).convert_alpha()
FileNotFoundError: No such file or directory.
PS C:\Users\genki\OneDrive\デスクトップ\Python> ”
お忙しい中、大変恐縮ではございますが、ご教授お願い致します。
コメントありがとうございます。
背景画像のファイルパス“bg.jpg”を、ご自身の画像ファイルのパスに変更する必要があります。
pygameでホーミング弾(ミサイル)のサンプルプログラムをお願いします。