PROGRAM PYTHON

Pythonスクリプト【Pygameでスプライトを使おう】

 

Pygameのスプライトを使ってみよう

今回はゲームでよく使われるスプライトを使ったプログラムを作ります。
スプライトとは、動かす図形と背景を別々に作成して、画面上で合成する仕組みです。
スプライトを使うと、以下の記事で作成したようなプログラムが簡単に作成できます。

今回のプログラムでは、ボールを同時に4つ動かします。
なお、読み込む画像ファイルはあらかじめ作成して、スクリプトと同じディレクトリに置いておきます。

 

Pythonスクリプト

今回のスクリプトは、以下のようになります。

注意ポイント

あらかじめimg1.png~img4.pngという画像ファイルをスクリプトと同じディレクトリに配置しておく必要があります。
画像ファイルは各自で用意してください。



 

スクリプト解説

7行目

画面オブジェクトを生成します。

14~60行目

Spriteクラスを継承します。
引数はファイル名、X軸位置、Y軸位置、X軸の移動先、Y軸の移動先です。

23行目

指定したファイルを読み込みます。
convert_alpha()メソッドは、ピクセル単位の透明度を保持したまま画像のピクセル形式を変更します。

26行目

画像サイズを 20 x 20 ピクセルに変更します。

33行目

引数で渡された情報を元に、四角形オブジェクトを生成します。

42~54行目

オブジェクトの移動位置を更新する関数です。

45行目

オブジェクト自身の位置を移動します。

48~51行目

画面の横位置、縦位置の限界まできたら、オブジェクトの移動する向きを逆転させます。

54行目

画面外になったら画面内に収まるように位置を移動します。
rect.clamp()メソッドを使わないと、オブジェクトが画面から消えることがあります。

59、60行目

オブジェクトを画面に描画します。

69行目

画面を初期化します。
SURFACE.sizeで、画面の横と縦を取得します。

72~75行目

スプライトを作成します。
引数の意味は、以下の通りです。
1番目:ファイル名
2番目:X軸の初期位置
3番目:Y軸の初期位置
4番目:X軸の移動位置
5番目:Y軸の移動位置

78行目

複数のスプライトをグループとしてまとめます。

81行目

時間オブジェクトを生成します。

87行目

指定したフレームレート分、処理を待ちます。
大きい値にすると、プログラムの待ち時間が短くなり、ボールの移動スピードが速くなります。

93行目

スプライト更新メソッドを呼び出します。

96行目

更新したスプライトを描画します。

99行目

画面全体を更新します。

105~109行目

画面右上の✕(バツ)ボタンかエスケープ(Esc)キーを押下すると、終了関数を呼び出します。

114~116行目

スクリプトを終了して、画面を閉じます。

 

-PROGRAM, PYTHON
-