ゲームにおけるデータ構造・クラス設計・パターン
■ このスレッドは過去ログ倉庫に格納されています
0742名前は開発中のものです。
2008/02/19(火) 22:58:48ID:kk7YgASyvoid GameFrame::doMainLoop() {
// シングルトン系の処理実行
g_pad.exec(); // パッド入力処理
g_file_loader.exec(); // ファイル非同期読み込み処理
// その他の処理実行
std::for_each(m_task_list.begin(), m_task_list.end(), boost::bind(&Task::exec, ::_1));
std::for_each(m_task_list.begin(), m_task_list.end(), boost::bind(&Task::draw, ::_1));
m_task_list.remove_if(boost::bind(&Task::needGC, ::_1));
}
こんな感じだと思うが。ファイルの読み込みは Task 派生クラスの exec の中で
TestTask1::exec() {
switch (m_state) {
case INIT:
g_loader.load("file1.arc");
++m_state;
break;
case LOADING:
if (g_loader.isLoaded("file1.arc"))
++m_state;
break;
case MAIN:
...
}
って感じで。マジメに作るとファイルは事前にアーカイブ&圧縮しておいて、ロード時に
展開するとか、そもそも名前ではなく #define シンボルで扱えるようにして下らないバグを
出さないようにするとか、断片化防ぐためにメモリのセグメント分割するとか、いろいろ
あるけど。
■ このスレッドは過去ログ倉庫に格納されています