私は C++ を初めて使用するので、小さなターン制の RPG エンジンを作成することにしました。これが私が抱えている問題です。、、、、、などのMob
属性を持つクラスがあります。それらにはすべて、一緒に使用するゲッターとセッターがあります。攻撃に関与する 2 つの Mob を取る方法もあります。また、HP 100、Stamina 30、Strength 30 の Mob を 2 つ作成しました (Edit Strength は実際には 5 です。私の悪い点です)。とにかく、攻撃するためのコードは次のとおりです。HP
MP
Stamina
Strength
Intelligence
attack()
srand(time(0));
int damage = mobSend.getStr() * 5 + (rand() % str);
cout << damage << endl;
mobRec.setHP((mobRec.getHP() - damage));
mobSend.setStamina(mobSend.getStamina() - 5);
プログラムを実行すると、最初にHPとスタミナを出力し、攻撃方法を実行してから、HPとスタミナを再度出力するようにしています。しかし、実行してもモブのHPやスタミナは減りません。setHP()
私はそれを確認するためにテストしてsetStamina()
機能したので、メインメソッドでhpとスタミナを0に設定すると機能しました.
loseHP()
パラメータとしてダメージを受けたもののような他のことを試しました:
void Mob:: loseHP(int damage) {this->HP -= damage;}
それでもうまくいきませんでした。ここで何が間違っていますか?私はここで本当に困惑しているので、助けていただければ幸いです。