現在ダンジョンゲームを作っていて、プレイヤーをランダムにスポーンさせるところで詰まっています。
ダンジョンの生成に使用したランダムの部屋の、ランダムの座標を取得する関数があるのですが、それをダンジョンマップの生成後に行うプレイヤーの生成に使おうとしています。
ダンジョン生成はうまくいくのですが、そのあとにプレイヤーの座標を取るために上記の関数を再度呼び出すとすべての値が初期化((?) (RECTを使っているところは変な値が入る)されてしまい、使いまわすことができません。
意図しないタイミングで解放が行われてしまっているのかと思っていたのですが、下記のコードを書いて試してみるとどうやら別のところで理解が及んでいないことに気が付きました。
#include<iostream>
class Hoge {
protected:
int x = 10;
public:
int Func() {
x += 100;
return x;
}
};
class Fuga : public Hoge {
public:
int y = 20;
void Func2() {
y = x;
}
};
void main() {
Hoge* hoge;
Fuga* fuga;
hoge = new Hoge();
hoge->Func();
fuga = new Fuga(); // Func()を呼んで計算した後の、最新の状態を代入する?
fuga->Func2();
std::cout << fuga->y << std::endl;
system("pause");
}
よろしくお願いします。