参考資料:bouncingballs.py
参考資料:bouncingballs.py¶
— 自由制作のためのヒント —
このページについて¶
このページは、自由制作のための参考資料である。
このページは必修ではない
読まなくても、使わなくても評価には影響しない
興味を持った人だけ、覗いてみてほしい
ここに書かれている内容は、 「こう作るべき」という指示ではない。
「こういう作り方もある」 という一例を示すものである。
bouncingballs.py とは¶
bouncingballs.py は、
画面の中で複数のボールが動き回る、
シンプルな Python プログラムである。
ゲームではない
完成した作品でもない
自由制作の模範解答でもない
授業で扱った PyGame-CE の基本的な要素を組み合わせて、 「少し大きめのプログラム」を書くと、 どのような構造になるかを示している。

Figure 81:bouncingballs.pyを使ったボールの運動描画例
何が書かれているか(全体像)¶
細かい部分をすべて理解する必要はない。 まずは全体を眺めてみてほしい。
このコードには、次のような考え方が含まれている。
「世界全体」を表すクラス
「物体(ボール)」を表すクラス
時間を少しずつ進める処理
壁や他の物体との簡単な相互作用
描画処理と更新処理の分離
ここに出てくる構造や書き方を、 そのまま真似する必要はない。
「世界」を作るという考え方¶
このプログラムでは、
画面の大きさ
時間の進み方
その中で動く物体
をまとめて「世界」として扱っている。
自由制作でも、
キャラクター
図形
パーティクル
何らかの状態
が動く空間を作ることになる。
bouncingballs.py は、
その「枠組み」をどう切り出すかの一例である。
どう使ってもよいか¶
このファイルは、次のような使い方を想定している。
眺めるだけ
一部だけコピーして使う
数字(速度・大きさ・数)を変えてみる
処理を削って、もっと単純にする
わざと壊してみる
逆に、
全部を理解しようとする
この形に合わせて作品を作ろうとする
必要はない。
自由制作との関係¶
自由制作では、
何を作るか
どう動かすか
どこを面白いと感じるか
を、自分で決めることが大切である。
bouncingballs.py は、
唯一の正解
近道
目標
ではない。
「こんな構造もあるんだ」 「思ったより単純かもしれない」
と思えたら、それで十分である。
生成AIと一緒に読む場合¶
このコードを読むときに、
分からない部分を生成AIに説明させる
クラスや関数の役割を聞いてみる
のは問題ない。
ただし、自由制作で使う場合は、
何を作りたいか
どこを変更したか
なぜそうしたか
を 自分の言葉で説明できる ようにしてほしい。
最後に¶
このページは、
課題ではない
読書課題でもない
理解度を測るものでもない
自由制作で迷ったときの **「引き出しのひとつ」**である。
使っても、使わなくても、 あなたの作品の価値は変わらない。
ファイル¶
上の2つのファイルを同じフォルダに置き、
bb-sample.pyを実行すると、Figure 81のようにボールが跳ね返りながら運動するシミュレーションが表示されるはずである。
ライセンス¶
— 自由制作のためのヒント —
このページについて¶
このページは、自由制作のための参考資料です。
このページは必修ではありません
読まなくても、使わなくても評価には影響しません
興味を持った人だけ、覗いてみてください
ここに書かれている内容は、 「こう作るべき」という指示ではありません。
「こういう作り方もある」 という一例を示すものです。
bouncingballs.py とは¶
bouncingballs.py は、
画面の中で複数のボールが動き回る、
シンプルな Python プログラムです。
ゲームではありません
完成した作品でもありません
自由制作の模範解答でもありません
授業で扱った PyGame-CE の基本的な要素を組み合わせて、 「少し大きめのプログラム」を書くと、 どのような構造になるかを示しています。
何が書かれているか(全体像)¶
細かい部分をすべて理解する必要はありません。 まずは全体を眺めてみてください。
このコードには、次のような考え方が含まれています。
「世界全体」を表すクラス
「物体(ボール)」を表すクラス
時間を少しずつ進める処理
壁や他の物体との簡単な相互作用
描画処理と更新処理の分離
ここに出てくる構造や書き方を、 そのまま真似する必要はありません。
「世界」を作るという考え方¶
このプログラムでは、
画面の大きさ
時間の進み方
その中で動く物体
をまとめて「世界」として扱っています。
自由制作でも、
キャラクター
図形
パーティクル
何らかの状態
が動く空間を作ることになります。
bouncingballs.py は、
その「枠組み」をどう切り出すかの一例です。
どう使ってもよいか¶
このファイルは、次のような使い方を想定しています。
眺めるだけ
一部だけコピーして使う
数字(速度・大きさ・数)を変えてみる
処理を削って、もっと単純にする
わざと壊してみる
逆に、
全部を理解しようとする
この形に合わせて作品を作ろうとする
必要はありません。
自由制作との関係¶
自由制作では、
何を作るか
どう動かすか
どこを面白いと感じるか
を、自分で決めることが大切です。
bouncingballs.py は、
唯一の正解
近道
目標
ではありません。
「こんな構造もあるんだ」 「思ったより単純かもしれない」
と思えたら、それで十分です。
生成AIと一緒に読む場合¶
このコードを読むときに、
分からない部分を生成AIに説明させる
クラスや関数の役割を聞いてみる
のは問題ありません。
ただし、自由制作で使う場合は、
何を作りたいか
どこを変更したか
なぜそうしたか
を 自分の言葉で説明できる ようにしてください。
最後に¶
このページは、
課題ではありません
読書課題でもありません
理解度を測るものでもありません
自由制作で迷ったときの **「引き出しのひとつ」**です。
使っても、使わなくても、 あなたの作品の価値は変わりません。