説明不足な点があれば言ってください。
はじめまして。Tと申します
私はSTGを製作しようと思って、以下のようなシステムで設計をしようと考えているのですが、
クラスの宣言位置や、他のクラスの参照などで分からないことがあり、戸惑っています。
全体の流れはこのような感じです
メイン関数
↓
ファクトリークラス
{
・オブジェクト(自機、敵など)のポインタを収納する配列
・オブジェクトの生成用のスタック(配列)
・オブジェクトを作る関数
・オブジェクトを破棄する関数
}
↓
各オブジェクトの処理
↓
ループ
分からないところがあるのは、オブジェクトの生成についてです
・オブジェクトの生成用のスタック(配列)
(ちなみに、スタックと書いてありますが実際はただの構造体の配列です。概念的にはスタックです)
これは、自機などのオブジェクトが、このスタックに
obj(種類,座標,速度,向き・・・)というような情報をつめて
ファクトリークラスがそのスタックに溜まっている情報を元にオブジェクトを生成する、ということなのですが
どうやってファクトリークラスに情報を渡せばいいのかが分かりません・・・
たとえば、
ファクトリークラス
{
・オブジェクトを作る関数
{
if ( obj.種類==敵A ) 敵Aを生成
if ( obj.種類==自機弾 ) 自機弾を生成
・・・
}
}
敵Aクラス
{
・メイン処理関数
{
ファクトリークラスにオブジェクトを生成するための情報を渡す
・・・
}
}
自機弾クラス
{
・メイン処理関数
{
ファクトリークラスにオブジェクトを生成するための情報を渡す
・・・
}
}
敵Aの情報がファクトリークラスに伝わっていなく、そこで、宣言順を逆にすると
敵Aがファクトリークラスにオブジェクトを生成しようとスタックに情報を詰める時に、
ファクトリークラスの情報が敵Aが伝わっていなく・・・
というような状態になってしまいます。
つまり、敵A、自機弾クラスがファクトリークラスのスタックにオブジェクト生成用の
情報を与えられて、かつファクトリークラスが敵A、自機弾を生成できればいいのですが・・・
そこをどうすればいいのか、何も思いつきません・・・
もし、この方法だと不都合が生じるというのであれば、
できるだけ簡単で分かりやすい方法を教えてくださるとありがたいです。
どなたかご教授お願いします
