タスクシステム総合スレ part3
■ このスレッドは過去ログ倉庫に格納されています
0823名前は開発中のものです。
2009/01/31(土) 02:06:18ID:knmkZjZM>→VSYNCイベントを受け取りたいオブザーバを登録して
タスクシステム=>>2では全ゲームオブジェクト(タスク)は必ずただひとつのリスト(タスクリスト)に
登録されることが義務付けられているぞ。ゲームオブジェクトに選択の自由なんて全然無いからな
どんな性質のゲームオブジェクトだろうと必ずVSYNC発生毎に通知を受けなければならないんだよ
タスクシステムというのは、ゲームオブジェクトとはVSYNCに依存して当然、依存しないなんてあり得ない
VSYNC発生の度に通知を受けることを全ゲームオブジェクトが望んでいるに決まっている、という仕組み
CodeZineのコードはゲームオブジェクト生成と同時に暗黙のうちに唯一のリスト(タスクリスト)に登録する
たとえばゲーム開始時点で生まれて一定時間経過後に何らかの行動を始めるゲームオブジェクトがあるとする
タスクシステムではこういう性質のゲームオブジェクトも生まれると同時にタスクリストに登録する
VSYNC発生の度に通知を送り続ける。このゲームオブジェクトは通知を受けるたびに行動開始の時間かどうかを
自分でチェックしなければならない。まだ行動開始の時刻でなければ何もせずに処理を返す。時間がくるまで
そういうことを延々繰り返す
このゲームオブジェクトが本来受け取りたいイベントというのは行動開始時間で、VSYNCイベントとの依存関係は
本来はない。でもタスクシステムではVSYNC(一定周期の)通知機能しか提供しないから仕方なくこれを代用して
自分でポーリングを行なっている
タスクシステムでは依存関係があろうがなかろうが通知を全員に送る。オブザーバー・パターンの目的とは違う
■ このスレッドは過去ログ倉庫に格納されています