インターバル

仕様を、ああでもないこうでもないと脳内こねくり回ししてた。真実はいつも一つ「いいからコード書けよ」なんだけど。
せっかくSDL2.0からマルチウィンドウ(同時に複数窓を立ち上げるアレ、OSもどきやANOS7の枠組みみたいなのが作れる)正式対応になったので、
イジレるようにはしておこうと思いつつも、既存の形式にどう加えるかという話。

Game.loop(multi: 3, fps: 60) do |window|
    window[0].set_and_run
    window[1].set_and_run
end

みたいなのが一番簡単かな、fpsとかは全てのウィンドウに基本値として適用される。
数が多すぎなければ、|game, subgame, editor| として、block.arityで調べて生成もアリかな。
multi: {game: {fps: 60, title: "maingame"}, editor: { fps:30, title: "mapeditor"} } で簡易設定、
Game.newしたインスタンスを登録する場合はそのまま、multi: [game, subgame, editor] と配列で渡す、とか。
いっそ外部からのGame.newを封じてしまっても良いのだけど、流石に自由度を制限し過ぎになってしまうからなぁ。


後は物理エンジンや拡張子の省略について、前者は本格的なモノを移植するのか、それっぽい動きが再現出来る程度に自前で実装するのか、
後者は省略そのものは難しくないけど、それによって形式決め打ちにするのか、逆に多種な形式を受け入れるようにするのか。


他には、所謂定数ではなくRubyライクにシンボルを使っていこうという方針なので、
その上で、定数ライクというか論理演算等もそのまま扱えるようにシンボルの拡張をしていこうかなとか、
衝突処理とパターンマッチを上手く組み合わせるにも如何して攻めて行けば良いものかなとか。


そんな感じで、脳内整理・そのいち、でした。