OOとゲームプログラミング
■ このスレッドは過去ログ倉庫に格納されています
0768766
02/03/20 01:38ID:???struct hittable {
virtual void get_hit_rect(rect&, hit_type&) = 0;
};
class player_task : public hittable
{
bool invisiable_;
public:
void get_hit_rect(rect& rc, hit_type& htype)
{
if (invisible_)
rc = INVALID_RECT; // 不可視状態の時には、当たり判定なし
else
...
}
};
インターフェースの多重継承を利用すれば、こんな感じでタスクの内部状態
を利用して当たり判定を変更することが、容易に可能になる。コンポジション
で同じ事をやろうとしたら、思い切り不自然なコードを書くことになるぞ。
■ このスレッドは過去ログ倉庫に格納されています