ProtoThree
Three.jsがステート管理システムを備えていなかった(内容としてはDXライブラリに近い)ので、シーン管理システムを作ってみる
https://github.com/javel555/ProtoThree
Phaserを参考に作成
WebXRへの幻想が打ち砕かれ気味なので、育てていくかは不明
babylon.jsの方が良いんじゃね疑惑
ざっくり登場人物
Manager
ProtoThreeとThree.jsとの接続層。各種マネージャのインスタンス提供
SceneManager
シーン管理。AbstractSceneを継承してSceneを作成する
InputManager
入力管理。発生したイベントを実行中のSceneへ中継する
TODO:
サウンド管理の作成
アセットロード管理の作成
インプット管理のonKeyDownがスマホで機能しないバグがある
リサイズしてもUI配置がズレたままのバグがある
スクロールバーが出る時がある
左クリック連打しながらカーソル動かすとUI要素(DOM要素)が範囲選択される
どうも、SampleGameでマウス制御乗っ取り処理をゲーム開始時にのみ許可しているのが問題の模様
厳密には、マウス制御乗っ取り処理をInputManager側に持たせる。というタスク
サンプル実装:
SampleGame