- 1 名前:名前は開発中のものです。 [2010/10/01(金) 19:54:53 ID:ZGMtyIlk]
- タスクシステムで〜す。
- 499 名前:名前は開発中のものです。 mailto:sage [2011/10/08(土) 14:01:47.31 ID:F4Vx7tUI]
- >>497
ありがとう。くじけないでがんばるよ。 ---- タスクシステムそのものの話題になるよう願ってネタ提供 自分タスクシステムではどんな型もtaskリストのループは基本クラスの仮想関数Updateを呼んでます。 継承した型でオーバーライドするUpdateの中で、その型に固有のUpdate_typeを呼んでいます。 これで基本型から継承型へのdynamic_castを回避しています。
- 500 名前:名前は開発中のものです。 mailto:sage [2011/10/08(土) 14:02:28.83 ID:F4Vx7tUI]
- (続き)
ゲームオブジェクトはUpdate_typeの中でメンバ関数ポインターをテーブルで呼び出して振る舞いを切り替えています。 class GAMEOBJ : TASKBASE { enum STATUS { STATUS_MOVE, STATUS_JUMP, STATUS_MAX, } status; void Update( void ) { Update_gameobj(); } void Update_gameobj( void ){ (this->*TASKGAMEOBJ::function[status])(); } void gameobj_move( void ); void gameobj_jump( void ); static void (*GAMEOBJ::function[STATUS_MAX] )( void ); };
|

|