1人でゲームが作れるように修行します。2 (487レス)
上
下
前
次
1-
新
168
(1)
:
SGGK ◆6pZCoAtaxk
2011/03/09(水)23:02
ID:u9XYEX3Y(1)
AA×
>>167
[240|
320
|
480
|
600
|
100%
|
JPG
|
べ
|
レス栞
|
レス消
]
168: SGGK ◆6pZCoAtaxk [sage] 2011/03/09(水) 23:02:50.72 ID:u9XYEX3Y >>167 これは書籍(14歳シリーズ)を参考に書いた処理で、 今も自信ないけど、以下の様な感じで相互参照のクラスが出来てしまってます。 選手22人分の移動関数をループから同じ書き方で呼び出しても、 異なる移動関数を選択できるようにしたいという目的があり、まず移動関数を持つ基底クラスを作成。 その基底クラスの継承クラス内で移動関数をオーバーライドしてその関数を呼び出せれば様々な移動関数を使えるはず。 継承クラスのオブジェクトのポインタを格納するための「 基底クラスのポインタ型を持つメンバ変数を選手のデータ内に持たせ 」て、 そのポインタから移動関数を呼べば良い。 選手のオブジェクトからそのポインタを使って移動関数を呼ぶ時に選手のアドレス(thisポインタ?)を引数に持たせてやり、「 移動関数はそのthisポインタから選手の座標などのデータを呼び出し、更新する」。 上記の「」のところで、 選手のクラスは移動関数のクラスのポインタをデータに持つためには、選手のクラスが宣言される前に移動関数のクラスが定義されてなくてはならないし、 移動関数のクラスが選手のオブジェクトのポインタを通して選手のデータを使うには、移動関数の宣言より先に、選手のクラスが宣言されていないと選手の座標データを使った関数の中身が書けない。 ・・・というのが相互参照になった理由です。 http://mevius.5ch.net/test/read.cgi/gamedev/1272901469/168
これは書籍14歳シリーズを参考に書いた処理で 今も自信ないけど以下の様な感じで相互参照のクラスが出来てしまってます 選手22人分の移動関数をループから同じ書き方で呼び出しても 異なる移動関数を選択できるようにしたいという目的がありまず移動関数を持つ基底クラスを作成 その基底クラスの継承クラス内で移動関数をオーバーライドしてその関数を呼び出せれば様な移動関数を使えるはず 継承クラスのオブジェクトのポインタを格納するための 基底クラスのポインタ型を持つメンバ変数を選手のデータ内に持たせ て そのポインタから移動関数を呼べば良い 選手のオブジェクトからそのポインタを使って移動関数を呼ぶ時に選手のアドレスポインタ?を引数に持たせてやり 移動関数はそのポインタから選手の座標などのデータを呼び出し更新する 上記ののところで 選手のクラスは移動関数のクラスのポインタをデータに持つためには選手のクラスが宣言される前に移動関数のクラスが定義されてなくてはならないし 移動関数のクラスが選手のオブジェクトのポインタを通して選手のデータを使うには移動関数の宣言より先に選手のクラスが宣言されていないと選手の座標データを使った関数の中身が書けない というのが相互参照になった理由です
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 319 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
ぬこの手
ぬこTOP
0.047s