ねこタワー / ゲームループ
ねこタワーの描画、入力、状態更新を継続的に回すための基本構造。p5.jsでゲームを作るときの中心になる考え方。
概要
ゲームループは、ゲームの状態更新と描画を繰り返す仕組みです。
ねこタワーでは、p5.js の draw がこの役割を持ちます。
ゲームは、画面を一度描いて終わりではありません。 入力を受け取り、状態を更新し、画面を描画する処理を何度も繰り返します。
内容
基本的な流れは次の通りです。
- 入力を受け取る
- 現在の状態を読む
- キャラクターやブロックの位置を更新する
- 当たり判定を行う
- ゲームの状態を変更する
- 画面を描画する
この流れを毎フレーム繰り返すことで、プレイヤーからはゲームが動いているように見えます。
ねこタワーで見る観点
ねこタワーのようなゲームでは、特に次の観点が重要になります。
- 現在のゲーム状態をどこで管理しているか
- プレイヤー入力がどの処理に渡るか
- ブロックやねこの位置がどこで更新されるか
- 当たり判定の条件はどこにあるか
- ゲームオーバーや勝敗判定はどこで行うか
- オンライン対戦時に、ローカル状態と通信状態をどう分けるか
個人開発での意味
ゲームループを整理すると、単に動くゲームから、読みやすく直しやすいゲームに近づきます。 バグ修正、オンライン対戦、演出追加、難易度調整などをしやすくするためにも、状態更新と描画の責務を分けて考えることが重要です。
脚注
p5.jsでは draw に多くの処理を書き込みやすいですが、処理が増えると見通しが悪くなります。
入力、状態更新、描画、通信を分けて整理すると、あとから改善しやすくなります。
参考文献
- p5.js の draw 関数に関する公式ドキュメント
- ねこタワーの実装リポジトリ
外部リンク
更新履歴
- 初版作成
- プロジェクト一覧ではなく、ねこタワー親ページから参照する子ページに変更