ページ 11

値が一度変化して元に戻る・・

Posted: 2017年9月02日(土) 13:46
by たくやん

コード:

HUMAN::HUMAN(){
	heroHP = 100;
	x = 50;
}

void HUMAN::Show(){
		if (Key[KEY_INPUT_RIGHT] >= 1) {
			x++;
		}
}
void HUMAN::Draw() {
	DrawFormatString(x,150,0xffff,"%d",heroHP);
}

void HUMAN::All() {
	Show();
	Draw();
}
初めまして。
今回、C++を習い始めて上のようなクラスを作成しました。
そして、他のmain()関数で実行してもx=50→x=51になり、キーを離すとまたx=50に戻りました。
どこに不備があるのかよく分かりません。
ご教授のほどよろしくお願いします。

Re: 値が一度変化して元に戻る・・

Posted: 2017年9月02日(土) 14:20
by たくやん
言い忘れておりましたが、xはprivate関数です。

Re: 値が一度変化して元に戻る・・

Posted: 2017年9月02日(土) 17:04
by みけCAT
HUMANクラスの関数を呼び出している部分が提示されていないので予想ですが、毎フレームHUMANクラスの変数を宣言(初期化)しているのではないでしょうか?

Re: 値が一度変化して元に戻る・・

Posted: 2017年9月03日(日) 16:32
by たくやん
治りました!
どうやらクラスでオブジェクトを作成するタイミングをループの中に組み込んでいたのが原因でした!
ループ外でオブジェクトの作成をしたら治りました!
ご指摘ありがとうございました!