[過去ログ]
C/C++ゲーム製作総合スレッド Part1 (1001レス)
C/C++ゲーム製作総合スレッド Part1 http://echo.5ch.net/test/read.cgi/gamedev/1337516528/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
996: 名前は開発中のものです。 [sage] 2012/10/23(火) 01:15:06.83 ID:lf4QviES class Task { Task* m_pNext; Task* m_pPrev; bool m_Head; //デク先頭フラッグ bool m_ToBeDeleted; //削除フラッグ virtual void Exec()=0; // }; class Filament : public Task { //m_EntryPointにTaskクラスをつなげる。 Task m_EntryPoint; //デク先頭 ~Filament() { //親delete時に、連鎖的にdeleteする子の削除フラッグを立てる。 Task* child = m_EntryPoint.m_pNext; while (!child->m_Head) { child->m_ToBeDeleted=true; child = child->m_pNext; } }; }; class Fiber : public Filament {...}; //m_EntryPointにFilamentクラスをつなげる。 class Synthesis { Fiber* fibers_active[4]; }; //1次元配列。参照のみ。 class Repository { //シーンの切り替わりで動的に生成・破棄し、インスタンスを必要分だけ保持する。 Task* tasks[1024]; //1次元配列。インスタンスを注入。 Filament* filaments[256]; //1次元配列。インスタンスを注入。 Fiber* fibers[64]; //1次元配列。インスタンスを注入。 }; http://echo.5ch.net/test/read.cgi/gamedev/1337516528/996
997: 名前は開発中のものです。 [sage] 2012/10/23(火) 01:16:10.47 ID:lf4QviES ↑極端な例だが、 Repositoryクラス内で、シーン中、必要なインスタンスしか確保しないという条件の場合、 まずSynthesisクラス内の要らないfibers_active要素だけ削除フラッグを立てて、 次にRepositoryクラス内のフラッグが立ったfibers要素をdeleteして、 次にRepositoryクラス内のフラッグが立ったfilaments要素をdeleteして、 最後にRepositoryクラス内のフラッグが立ったtasks要素をdeleteする、 っていうのが効率的なんじゃないか? 要は、麗しのタスクシステムなんだが(笑) http://echo.5ch.net/test/read.cgi/gamedev/1337516528/997
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.032s