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

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
たくやん

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

#1

投稿記事 by たくやん » 9ヶ月前

コード:

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: 値が一度変化して元に戻る・・

#2

投稿記事 by たくやん » 9ヶ月前

言い忘れておりましたが、xはprivate関数です。

アバター
みけCAT
記事: 6013
登録日時: 7年前
住所: 千葉県
連絡を取る:

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

#3

投稿記事 by みけCAT » 9ヶ月前

HUMANクラスの関数を呼び出している部分が提示されていないので予想ですが、毎フレームHUMANクラスの変数を宣言(初期化)しているのではないでしょうか?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

たくやん

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

#4

投稿記事 by たくやん » 9ヶ月前

治りました!
どうやらクラスでオブジェクトを作成するタイミングをループの中に組み込んでいたのが原因でした!
ループ外でオブジェクトの作成をしたら治りました!
ご指摘ありがとうございました!

返信

“C言語何でも質問掲示板” へ戻る