数フレームをまたぐ処理をうまく扱うには
Posted: 2013年6月10日(月) 19:57
ゲーム開発をぽちぽちやっております.システム周りに着手しています.
多段階で,数フレームをまたぐ処理を統一的に扱いたいと思っています.(デモシーンと呼ぶことにしました)
簡潔に記述したいのですが,なにか良く使われている技法がありましたら教えてください,お願いします.
例1. メニューボタンを押したらメニューがスライドインしてくる
(条件)ボタンが押される
状態遷移でメニューを表示するような処理を開始する
↓
スライドイン終了後に操作を受け付ける
シーンは複雑なので,上のように状態変数で分岐する処理はしたくない.
(例えば0-10カウントで下からスライドインして,10-30カウントの間くるくるまわって,30-50カウントの間に減速,停止するようなシーンだったら…)
でも同じ関数は何度も呼ばれる必要があるので現在デモシーンのどの段階にいるのかをプログラムは知らなければならない.
何か面白い方法がありましたら教えていただきたいなと思ったまでです.
処理自体を数珠つなぎにしたものをどこかに登録して,処理が終わったら次の数珠を実行するような機構は作ってみたのですが
処理の数だけクラスが必要で若干大変なことになっております.
多段階で,数フレームをまたぐ処理を統一的に扱いたいと思っています.(デモシーンと呼ぶことにしました)
簡潔に記述したいのですが,なにか良く使われている技法がありましたら教えてください,お願いします.
例1. メニューボタンを押したらメニューがスライドインしてくる
(条件)ボタンが押される
状態遷移でメニューを表示するような処理を開始する
↓
スライドイン終了後に操作を受け付ける
// 適当こーど
int count = 0;
int state = 0;
void UpdateMenu()
{
count++;
DrawMenu(0, 100 - count*10); // 下からスライドインする, (x,y)
if(count == 10)
updatecursor();
}
(例えば0-10カウントで下からスライドインして,10-30カウントの間くるくるまわって,30-50カウントの間に減速,停止するようなシーンだったら…)
でも同じ関数は何度も呼ばれる必要があるので現在デモシーンのどの段階にいるのかをプログラムは知らなければならない.
何か面白い方法がありましたら教えていただきたいなと思ったまでです.
処理自体を数珠つなぎにしたものをどこかに登録して,処理が終わったら次の数珠を実行するような機構は作ってみたのですが
処理の数だけクラスが必要で若干大変なことになっております.