PROGRAM PYTHON

Pythonスクリプト【Pygameでブロック崩しゲームを作ろう】

 

Pygameを使ってブロック崩しゲームを作ろう

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

 

Pythonスクリプト

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

 

スクリプト解説

前回のスカッシュゲームを改造していますので、今回は変更した部分を中心に解説します。

101、102行目

ゲーム開始時にボールがあらわれる位置を設定します。
X座標の+1は、画面の真ん中からスタートすると真上にボールが跳ね返るので、少し位置をずらしています。

159行目

pygame.sprite.spritecollide()は、グループ化したストライプの中から接触したものを探してリストを返します。
第3引数のTrueは、ボールが当たったブロックを削除します。

162行目

当たり判定があった場合は、if文の中に入ります。

165行目

当たり判定をしている間に、ボールの位置が変わってしまうので、copy.copy()を使ってボールオブジェクトの値を保存します。

168~188行目

ボールが当たったブロック数分ループします。
ボールがブロックの四辺のどこに当たったのかを判定しています。
場合によっては、判定処理が追いつかず、ボールが突き抜けてしまうことがありますが、バグとしてください。
174、179、184、189行目は、ボールがブロックに食い込んでいる分をブロックの端まで戻す処理です。

191~200行目

ブロックを全て消したら指定した秒数分、 画面に「GAME CLEAR」と表示します。

229、230行目

ブロックの表示位置を設定します。

248行目

ブロックは複数あるので、グループにして管理します。

249、250行目

x変数は横に並べるブロックの数、y変数は縦に並べるブロックの数です。

253行目

グループにブロックを追加します。

 

-PROGRAM, PYTHON
-,