【Pygame】スプライトのグループ管理(高速描画)

この記事では、Pygameを用いてスプライトをグループ管理する方法とソースコードを解説します。

ススプライトグループ(高速)

スプライトグループを使うと複数のスプライトを効率よく管理できます。(スプライトの更新・描画が楽)
また、スプライトの描画を高速に行うために汚れたRectのアニメーション(dirty rect animation)という手法があります。 この手法は、画面を更新するときに、全体を描き換えずにスプライトが更新された一部分だを描き換えます。
今回はPygameで汚れたRectのアニメーションを行ってみました。

処理手順

プログラムの処理の流れは下記の通りです。

①「pygame」モジュールをインポートする。
②画面のサイズを設定する。
③円の中心座標を画面の中心に設定する。
④Pygameを初期化する。[pygame.init]
⑤ キャラクター3人分のスプライトを作成する。(この時同時にグループに追加される)
⑥3つのスプライトをグループに追加する。(group.add)
⑦画面のフレームレートを設定する。
⑧スプライトを背景画像で消去する。
⑨スプライトグループを更新する。(group.update)
⑩スプライトグループを描画する。(group.draw)
⑪変化がある箇所のRectを取得する。
⑫画面を更新する。(変化がある部分のみ)
⑬3人のキャラクターを指定した座標(x, y)に描画する。
⑭イベント処理をする。
・画面の閉じるボタンが押されたら終了する。
⑮7-15の処理を繰り返す。

ソースコード

サンプルプログラムのソースコードです。

実行結果

サンプルプログラムの実行結果です。


3人のキャラクターがあっちこっち動きます。

【おすすめ関連記事】
Pygameでゲームプログラミング
Python入門 基本文法

関連記事