合計 昨日 今日

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

[このトピックは解決済みです]

フォーラムルール
フォーラムルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Name: たくやん
[URL]
Date: 2017年9月02日(土) 13:46
No: 1
(OFFLINE)

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

コード[C++]: 全て選択
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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に戻りました。
どこに不備があるのかよく分かりません。
ご教授のほどよろしくお願いします。

Name: たくやん
[URL]
Date: 2017年9月02日(土) 14:20
No: 2
(OFFLINE)

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

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

Name: みけCAT
[URL]
伝説なるハッカー(680,549 ポイント)
Date: 2017年9月02日(土) 17:04
No: 3
(ONLINE)

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

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

Name: たくやん
[URL]
Date: 2017年9月03日(日) 16:32
No: 4
(OFFLINE)

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

[解決!]

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


Return to C言語何でも質問掲示板

オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[16人]