2020.01.14Python用ゲームモジュール「Pygame」でゲームプログラミングする方法を入門者向けに解説しています。【制作例】ブロック崩し、卓球ゲーム(PONG)など【Pygameとは】できることPythonで2D/3Dゲームを作るには、ゲームライブラリを使うのが一般的です。Pygameは、Pythonで2Dゲームを制作する際の最も有名なゲームライブラリです。次のようなブロック崩しゲームならば160行くらいのソースコードで作成できます。【Pygame】pipでインストール(Windows編)Pythonライブラリ「Pygame」をpipでWindows上にインストールする方法についてまとめました。algorithm.joho.info2018.10.01【Python】ゲームプログラミング・ライブラリ比較Pythonでゲームプログラミングする方法を入門者向けに解説しています。algorithm.joho.info2018.10.06【画面作成】サイズ、タイトル、背景色、テキスト、フルスクリーンの設定Pythonモジュール「pygame」でゲームを作成するには、まず画面を作成します。主人公Pygameでは「pygame.image.load()」で画像を読み込めます。「screen.blit」で読み込んだ画像をウィンドウに貼り付けることができます。今回はこれらを用いて、背景画像を読み込んでゲーム画面に主人公と背景を描画してみました。【イベント】キーとマウスでキャラクタの操作キーイベント編Python用ゲームモジュール「Pygame」のキーイベント処理機能「pygame.event.get()」を用いて、矢印キー長押しでキャラクター画像を動かしてみました。sys.exit()main()矢印キーでキャラクターを動かすことができました。■矢印キー(長押し)でキャラクター操作マウスイベント編Pygameではイベントハンドラ「pygame.event.get()」でマウスポインタの移動を判定できます。「event.pos」でマウスポインタの画面上の座標を取得できます。今回はこれらを用いて、マウスポインタに追従させるようにキャラクターを移動させてみました。sys.exit()main()マウスポインタのある場所にキャラクタ画像(player.png)を描画できました。【スプライト】グループで高速描画スプライトとは、キャラクターを低いCPU負荷で滑らかに動かすグラフィック技術のことです。これまでにもキャラクターの操作(移動や回転など)を行ってきましたが、複数のキャラクターを扱うとコード量がどんどん増えていく問題があります。キャラクター操作に関する各種機能をスプライトクラスとして1つにまとめ、複数のキャラクターを扱いやすくしてみました。【実行結果】3人のキャラクターを描画できました。self.containers)」を使うと、スプライトクラス内であらかじめグループを指定しているため、スプライトの作成するとそのままグループに追加されます。animation)という手法があります。この手法は、画面を更新するときに、全体を描き換えずにスプライトが更新された一部分だを描き換えます。「pygame.mixer.music」を使うと、mp3等の音楽ファイルを再生できます。【制作例】ブロック崩し、卓球ゲーム(PONG)などゲーム制作例を以下にまとめました(それぞれの詳細ページに解説とソースコードがあります)。ArticlesPython【Pandas】株価の移動平均線この記事では、PythonモジュールPandasで、株価の移動平均線を求める方法をソースコード付きで紹介します。Python【Python】現在時刻(時・分・秒・ミリ秒)を取得この記事では、Python言語を用いて、現在の時刻(時・分・秒)を取得する方法とソースコードを解説します。Python【Python/Selenium】プロキシを使ってWebページにアクセスPython用モジュール「Selenium」でプロキシを使ってWebページにアクセスする方法についてソースコード付きでまとめました。Python【Python/Keras】手書き文字認識(mnist)のサンプルを動かすPythonの機械学習モジュール「Keras」のmnistの手書き文字認識のサンプルを動かす方法をソースコード付きで解説します。Python【Pandas】CSVファイルの読み込みこの記事では、Python言語と「Pandas」モジュールを用いてCSVファイルを読み込む方法について解説します。plt.barこの記事では、Python向けグラフ描画ライブラリ「Matplotlib」を用いて、縦棒グラフを描画する方法を紹介します。Python【Python/OpenCV】画像のヒストグラム平均化Python版OpenCV(cv2.equalizeHist)で画像のヒストグラム平均化する方法をソースコード付きで解説します。Python【Python】整数乱数をある範囲内で生成この記事では、Python言語で整数乱数を指定した範囲で生成する方法をソースコード付きで解説します。Python【Python/psutil】CPUやメモリの使用率を取得Pythonモジュール「psutil」でCPUやメモリの使用率を取得する方法についてソースコード付きでまとめました。Python【NumPy】等差数列の生成(numpy.linspace)Python言語とNumPyを用いて、範囲・個数を指定して等差数列(配列)を生成する方法をソースコード付きで解説します。Python【Python/OpenCV】高速フーリエ変換でパワースペクトルの算出この記事では、Python版OpenCVとNumPyを用いて、高速フーリエ変換によりパワースペクトルを算出する方法をソースコード付きで解説します。Python【Python】制御工学シミュレーションこの記事では、プログラミング言語「Python」を用いて、無料で簡単に制御工学シミュレーションを行う方法を紹介します。Python【Python】pymodbusの扱い方・シリアル通信Pythonモジュール「pymodbus」でModBus方式のシリアル通信を行う方法についてソースコード付きでまとめました。Python【Python】ファイルをバイナリモードで読み書きPythonでファイルをバイナリモードで読み書きする方法について入門者向けにまとめました。OS上でPythonのバージョンを確認する方法をソースコード付きでまとめました。Python【Python】音声ファイル(Wave)の波形表示Python言語を用いて、音声ファイル(Wave形式)の波形を表示する方法をソースコード付きで解説します。(IFFT)この記事では、Python言語とNumPyを用いた高速逆フーリエ変換(IFFT)の使い方をソースコード付きで解説します。Python【NumPy】複素数の使い方この記事では、Python言語とNumPyを用いて複素数を扱う方法をソースコード付きで解説します。AMPygameの基本操作の各々にサンプルプログラム、の項がありますが多くのものが記載されていません。AM※ss様コメントありがとうございます。ソースコードを表示するリンクが崩れてておりました。申し訳ありません、今から修正します。ご連絡ありがとうございました。等の画像が必要ですが、これらはどこで入手できますか。PM※papipo様コメントありがとうございます。「ゲーム素材(画像)」に記載されている外部サイト様より入手可能です。AM※tk様コメントありがとうございます。該当箇所を修正しました。PMSpriteクラスの__init__の引数はPython3ではエラーになります。注釈をつけるか、今はPython3が主流なのでPython3対応のコードに書き換えていただけると困る人が減ると思います。PM※はやたか様コメントありがとうございます。Python3でも動くようコードを修正致しました。コメントをキャンセルメールアドレスが公開されることはありません。erode)2019.12.152019.12.31【Python】C言語との記述法の違いを比較2017.09.072018.09.03【Python】ネットワークプログラミング入門2018.12.07タイトルとURLをコピーしました。