何がしたいか ゲームループがループごとにイベントを複数生成するのだが、それを時系列に沿って順番に捌きたい でもオブザーバでグローバルなイベント投げまくるとすぐクソコード化する どうにかしてピュアなモデルからビューとの待ち合わせ(オブザーバー含む)を切り離したい。なんでもしますから! というわけでちゃんと設計練って書いてみたら結構いいんじゃねとなったので、解説書く。 設計の概要 EventSource#createEvents() は Eventの配列を生成する 実際にはここがユーザーが記述する部分になる EventRunner はループ毎にEventSource#createEvents()を呼び、上から順に処理する event.eventType毎に処理の仕方を記述する この例ではEvent間の時間を100msとなるよ]うにしてるが、実際なんでもいい。 コード CoffeeScriptで