PROGRAM PYTHON

Pythonスクリプト【Pygameでスカッシュゲームを作ろう】

 

Pygameを使ってスカッシュゲームを作ろう

今回はPygameのスプライトを使って、スカッシュゲームを作ります。
落ちてきたボールを、ラケットを動かして打ち返す簡単なゲームです。
ラケットの移動には、左右のカーソルキーを使います。
ラケットとボールの画像ファイルは、あらかじめPythonスクリプトと同じディレクトリに置いておきます。

 

Pythonスクリプト

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

 

スクリプト解説

47、48行目

引数で渡されたracket_pos変数をラケットの中心位置として指定します。
ラケットのY座標は画面の最下位より30ドット上にしています。

51行目

self.rect.clamp_ip()で、ラケットが画面からはみ出さないようにしています。

81行目

ラケットクラスをボールクラスで参照します。

82行目

setup()をupdate()に代入しています。
これにより、189行目のball.update()で、setup()が呼び出されます。

92行目

move()をupdate()に代入しています。
これにより、ball.update()を実行すると、2回目からmove()が呼び出されるようになります。

115行目

self.rect.colliderect()を使って、ラケットとボールのオブジェクトが重なっているかを判定します。

118~126行目

ボールがラケットに当たった位置によって、ボールの反射角度を変えます。
初期設定では、X軸とY軸は1対1ですが、X軸を最大で2対1になるようにしています。
また、ラケットの真ん中に当たった場合は、ランダムで反射角度を微妙に変えるようにします。

132~137行目

ボールが画面下に行った場合は、画面に「GAME OVER」と表示して、ゲームを終了します。

165行目

キーのリピートを有効にします。
これにより、キーを押しっぱなしにしてもラケットを移動できます。

168~172行目

ゲームを開始すると、画面に「START」と表示します。

175行目

time.sleep()により、指定した秒数分、後続処理を待機します。

208~211行目

左右のカーソルキーを使って、ラケットオブジェクトを左右に移動します。

 

-PROGRAM, PYTHON
-,