我是 C++ 新手,我决定制作一个小型回合制 RPG 引擎。这是我遇到的问题。我的类具有, , ,和Mob
等属性。他们都有 getter 和 setter 一起去。我也有让参与攻击的两个小怪的方法。还已经创建了两个生命值 100、耐力 30 和力量 30 的小怪(编辑力量实际上是 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 和 Stamina,运行攻击方法,然后再次打印 HP 和 Stamina。但是,当我运行它时,小怪的 HP 或耐力不会下降。我进行了测试以确保它有效setHP()
,setStamina()
因此我在 main 方法中将 hp 和 stamina 设置为 0 并且它有效。
我尝试了其他loseHP()
将损坏作为参数的方法:
void Mob:: loseHP(int damage) {this->HP -= damage;}
但它仍然没有工作。我在这里做错了什么?我真的很难过这里,所以一些帮助将不胜感激。