07/04/09 14:40:22 TJO4g1v+
(>>158の続き)
つまり、雑魚も「オブジェクト」でいいじゃんっていう話。
class Zako : public Object
{
public:
void draw() {doutai->draw(x, y); migite->draw(x-8, y); …}
protected:
double x, y;
Doutai* doutai;
Migite* migite;
};
リストを使ってスマートにやりたいっていうんだったら、
class ObjectComposite : public Object
{
public:
void draw() {object_list内の全オブジェクトのdrawを呼ぶ};
protected:
list<Object*> object_list;
};
をZakoが継承すればいい。個別に引数を渡したいときには困るかもだがな。
こういう風にすれば、全てのオブジェクトを描画したい時は
for(iterator = list.begin(); iterator != list.end(); ++iterator) {
(*iterator)->draw();
}
だけで済む。オブジェクトが次のオブジェクトを知っている必要はなくなる。
まだ色々書きたいことはあるけど何か反応があってからにする。長文スマン。