この記事では、Pygameを用いて複数のキャラクターを効率よく扱うためのスプライトを作成する方法とソースコードを解説します。
スプライト用のクラス作成
スプライトとは、キャラクターを低いCPU負荷で滑らかに動かすグラフィック技術のことです。
これまでにもキャラクターの操作(移動や回転など)を行ってきましたが、複数のキャラクターを扱うとコード量がどんどん増えていく問題があります。
Pygameでは「pygame.sprite」を使うとスプライトの管理、描画、衝突判定等を簡単にできます。
今回はこれを用いて、キャラクター操作に関する各種機能をスプライトクラスとして1つにまとめ、複数のキャラクターを扱いやすくしてみました。
– | 処理手順 |
---|---|
① | 「pygame」モジュールをインポートする。 |
② | 画面のサイズを設定する。 |
③ | 円の中心座標を画面の中心に設定する。 |
④ | Pygameを初期化する。[pygame.init] |
⑤ | 3人分のキャラクター画像を取得する。 |
⑥ | 画面を更新する。 |
⑦ | 更新時間の間隔を設定する。 |
⑧ | 画面の背景色を黒に設定する。 |
⑨ | 3人のキャラクターを指定した座標(x, y)に描画する。 |
⑩ | イベント処理をする。 ・画面の閉じるボタンが押されたら終了する。 |
⑪ | 6-10の処理を繰り返す。 |
ソースコード
サンプルプログラムのソースコードです。
実行結果
サンプルプログラムの実行結果です。
3人のキャラクターを描画できました。
– | おすすめ関連記事 |
---|---|
1 | Pygameでゲームプログラミング |
2 | Python入門 基本文法 |
コメント
11行目のところが構文が違うと返されます。
※匿名様
コメントありがとうございます。
Python3だとエラーが出るようなので修正いたしました。
変更ありがとうございます。
変更したあとのものを実行すると下のエラーが起きます。
‘Sprite’ object has no attribute ‘img’
これはpyhotn3にはないのでしょうか?
※匿名様
コメントありがとうございます。
当方の環境でも同様のエラーが出ましたので修正致しました。