【コラボ企画】Raspberry Pi 愛に溢れるラズパイダのご訪問者に向けて新型Raspberry Pi 4Bのセット品をプレゼント!——クリックして特集記事へ

PyGame Zeroで学ぶプログラミング——Wireframeマガジン第11号

スポンサーリンク
wireframe11号 公式無料マガジン
この記事は約3分で読めます。

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 のインストールなどリファレンスは以下のページです。

Installing Pygame Zero — Pygame Zero 1.2 documentation

※Raspbian Jessieからpgzeroはデフォルトでインストールされています。×Python Gameとは異なります。
MacOSでもいけるようですね。

WindowsとLinux(32ビットと64ビット)、およびMac OS(64ビットのみ)用にコンパイル済みのPygameパッケージが用意されています。

×メニューにあるPython Gameではありません。

not-pythongames

では、実際に動かしてみましょう。

Pygame Zeroで実行させるには以下のコマンドです。

pgzrun breakout.py
breakoutpy

マウスを左右に動かすとバーが動きます。

あとは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」で検索するとたくさん出てきます。以下のサイトも参考になります。

Games with PyGame Zero

以上、PyGame Zeroでした。

コメント