タスクシステム総合スレ part4at GAMEDEVタスクシステム総合スレ part4 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト50:名前は開発中のものです。 09/02/05 00:32:17 9DTLfrVW ここでは描画オブジェクトとタスクは無関係だと考えて、以下のクラスを用意する。 無関係とするのは、描画オブジェクトが必ず継続処理を必要とするわけではないからだ。 //描画オブジェクト template <class DrawContext> class DrawingObject { public: virtual void draw(const DrawContext& dc) = 0; }; 描画用リストは CompositeDrawingObject クラスが管理する。 インターフェイスは自明な気がするので省略。 さてゲームの主人公マリオをどう表現するかというと、 //マリオ class Mario : public DrawingObject<DrawContext2D>, public PeriodicalTask { public: void draw(const DrawContext2D& dc); void update(); }; このようにMix-inして作る。ここでは PeriodicalTask を Mix-in したが、 マリオの継続処理を CooperativeTask でコーディングしたければそれを選んでも構わない。 PreemptiveTask を選ぶのは明らかにオーバースペックで排他処理が面倒になるが、 やりたければそれもまあ可能だ。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch