circular_breaker

circular_breaker

English | 日本語

circular_breaker

概要

実行方法

使用している webg 機能

実装の流れ

main.jsはWebgApp、SmoothShader、GameAudioSynthを初期化し、arena、block、paddle、pack、particleを作成した後、入力、game runtime、scene phase、diagnosticsを接続します。毎frameの個別ルールをmain.jsへ集めず、初期化と各moduleの配線を追えるようにしています。

gameRuntime.jsはscore、level、残りPACK数、paddleとpuckの位置・速度など、play中に変化する状態を保持します。paddle移動、puck反射、blockとの衝突、短時間の反動表示を更新し、stage進行に関する判断はstageFlow.jsへ渡します。stageFlow.jsは制限時間、目標破壊数、score計算、block再配置、game overを扱うため、物体の移動処理とstage規則を別々に確認できます。

scenePhases.jsはGameStateManagerを使い、intro / play / pause / stage-clear / resultの最上位状態を切り替えます。stage内で起きた結果をscene phaseへ変換し、phaseごとのBGMと通知SEもここで選びます。HUDはHud.js、sparkはparticleEffects.js、high score保存はhighScoreStore.jsへ分けているため、描画、短時間演出、永続データをgameplay更新から独立して調べられます。

処理順序は、入力をactionへ変換し、scene phaseを更新し、phaseに応じてgame runtimeを進め、更新後のNodeを描画し、最後にparticleとHUDを重ねる流れです。pauseでは現在の画面を保ったままgameplay更新を止め、resultでは移動と衝突を止めて終了表示とparticleの更新だけを続けます。

ファイル構成

確認ポイント

操作方法