クラス同士の橋渡し
Posted: 2012年2月01日(水) 18:42
質問させて頂きます
現在専門学校でC++で3Dのゲーム制作を行っているのですがクラスのアルゴリズムについて悩んでいます
現在、開発中のゲームには以下のクラスがあります
jikiクラス 自機の移動やステージ(壁、床)との当たり判定
enemyクラス 敵の移動やステージ(壁、床)との当たり判定
stageクラス ステージ上でのイベントを管理
cameraクラス カメラの注視点や座標を設定
このクラス達の間である特定の情報だけを他のクラスに渡して処理をしていきたいと思っています
例えば、「ステージのこの場所で自機が範囲内に入ったらこのイベントを起こす」という処理ならばstageクラスはjikiクラスの持っている自機の現在位置の情報を持っていないとだめだと考えています
自機の移動やその方向も今のところカメラの注視点と位置情報を頼りに動かしている構造なので
jikiクラスはcameraクラスの持っている注視点座標と位置座標の情報が必要です
今のところは素直にヘッダファイルをインクルードし、オブジェクトを宣言したりして情報を扱っているのですが、
「メンバ変数を1,2個他で使うだけなのにわざわざインクルードやオブジェクト宣言するのはちょっと……」と
思っています
何か最善の策はないでしょうか?
ちなみに先生からのアドバイスは
「いっそのこと、4つのクラスをグローバル変数としてオブジェクトを宣言する」
「クラス間の橋渡しだけをする専用のクラスを作る」
でした
現在専門学校でC++で3Dのゲーム制作を行っているのですがクラスのアルゴリズムについて悩んでいます
現在、開発中のゲームには以下のクラスがあります
jikiクラス 自機の移動やステージ(壁、床)との当たり判定
enemyクラス 敵の移動やステージ(壁、床)との当たり判定
stageクラス ステージ上でのイベントを管理
cameraクラス カメラの注視点や座標を設定
このクラス達の間である特定の情報だけを他のクラスに渡して処理をしていきたいと思っています
例えば、「ステージのこの場所で自機が範囲内に入ったらこのイベントを起こす」という処理ならばstageクラスはjikiクラスの持っている自機の現在位置の情報を持っていないとだめだと考えています
自機の移動やその方向も今のところカメラの注視点と位置情報を頼りに動かしている構造なので
jikiクラスはcameraクラスの持っている注視点座標と位置座標の情報が必要です
今のところは素直にヘッダファイルをインクルードし、オブジェクトを宣言したりして情報を扱っているのですが、
「メンバ変数を1,2個他で使うだけなのにわざわざインクルードやオブジェクト宣言するのはちょっと……」と
思っています
何か最善の策はないでしょうか?
ちなみに先生からのアドバイスは
「いっそのこと、4つのクラスをグローバル変数としてオブジェクトを宣言する」
「クラス間の橋渡しだけをする専用のクラスを作る」
でした