最近、ゲームエンジン(的なもの)をいじっていて、気づいたことがあるので、投稿。
ゲームループは典型的なシンプルなものだと。
for(;;){
入力(); // パッドや画面にタッチしたとか
動き(); // ゲーム中のものを動かす
描画(); // 描画する
}
になる。
「ゲーム本体にゲームエンジンや運動モデルを組み込む」あるいは「ゲームエンジンや運動モデル組にゲーム本体を組み込む」ということをすると上記のモデルをキープしようとするときついことがある。
ここで、ちょっとした、アイデア・・・。
そんなときは、動き();を2グループにわけて、
for(;;){
入力(); // パッドや画面にタッチしたとか
ゲーム用の動き(); // ゲーム中のものを動かす
{
描画用の動き();
描画用の描画();
}
}
にする手があるということ。
/////
言い方を変えると、
特にゲーム(のメインの判定?)とは関係のないピョンピョン跳ねているウサギを登場させたいシチュエーション。
「ピョンピョン跳ねているうさぎ」を出したいというのは、
「ピョンピョン跳ねているうさぎ」を描画したいのとニアリーイコールであり、
別にゲーム側でピョンピョン跳ねてるのを書いたり、管理したりする必要はないということ。
大きなくくりでいうとそれは描画だ。
/////
逆にいうと
ゲーム用の動き();と描画用の動き();はしっかり別けて考えるが得策のように思う。ここがしっかりしてないと、「ゲームが出来上がらない」。
/////
そして、
描画用の動き();は
運動モデルやゲームエンジンに任せやすい。
ゲーム用の動き();は
自前で書いた方がいいかな?
運動モデルやゲームエンジンと連携するのはなにか気をつけてやる必要がある。
/////
えーーーっと、メモ。