Wireframeマガジン今号も楽しく読めました。今回気になったBreakout’s brick-breaking action、意訳すると「ブロック崩しゲームを作り直す」は昔のベーマガを思い出して興味が沸きました。
ブロック崩しゲームは単純で誰でも出来て夢中になれるゲームです。Raspberry Pi 公式ブログでも扱っていましたね。
pygame zeroというアプリケーションで動かします。それと必要なのがプログラムです。
書かれているコードをチマチマ打つのをオススメしますけど、面倒ならコードはダウンロードできるので、3分クッキングみたいにそちらを使いました!ダメじゃん・・・。
Code and project assets from Wireframe #11
上のサイトでclone downloadをクリックすればWireframe-11-master.zipがダウンロードできます。中のbreakout.pyファイルを使います。
Raspbian以外のpygame zero のインストールなどリファレンスは以下のページです。
※Raspbian Jessieからpgzeroはデフォルトでインストールされています。×Python Gameとは異なります。
MacOSでもいけるようですね。
WindowsとLinux(32ビットと64ビット)、およびMac OS(64ビットのみ)用にコンパイル済みのPygameパッケージが用意されています。
×メニューにあるPython Gameではありません。

では、実際に動かしてみましょう。
Pygame Zeroで実行させるには以下のコマンドです。
pgzrun breakout.py

マウスを左右に動かすとバーが動きます。
あとはbreakout.pyの中身を覗いて、一部を変更したら、どういう結果になるか試行錯誤しながらプログラムが学べます。
WIDTH = 600 HEIGHT = 800 BALL_SIZE = 10 MARGIN = 50
単に画面サイズやボールのサイズを変えても面白いです。
def draw(): screen.clear() for brick in bricks: screen.draw.filled_rect(brick, brick.color) screen.draw.line(brick.bottomleft, brick.topleft, brick.highlight) screen.draw.line(brick.topleft, brick.topright, brick.highlight) screen.draw.filled_rect(bat, 'pink') screen.draw.filled_circle(ball.center, BALL_SIZE // 2, 'white')
これは初期配置ですね。
コメントされているので分かり易く、数字や計算式を変更すると学べると思います。
# Check for and resolve collisions
プログラムも125行で出来ています。全体的に真似て作れば、更にオリジナルのブロック崩しゲームの誕生です。
いかがでしたでしょうか。
昔、こういったプログラムの載った雑誌を手打ちしてみたものです(遠い目)
ネットには「PyGame Zero」で検索するとたくさん出てきます。以下のサイトも参考になります。
以上、PyGame Zeroでした。
コメント ご感想をお願いします。