Итак, я разрабатываю RPG-игру, и моя боевая система не работает. Я совершенно новый, но у меня есть хорошее понимание того, что у меня здесь, по большей части. Всякий раз, когда я запускаю боевую систему, переменные "eHp" и "hp" не обновляются.
hit = rand() % atk + 1 + (rand() % 3 + 1);
diff = hit - OppD;
if (diff > 0)
eHp = eHp - diff;
if (eHp <= 0)
break;
OppHit = rand() % OppA + 1;
OppDif = OppHit - def;
hp = hp - OppDif;
if (hp <= 0)
break;
Это внутри оператора switch внутри цикла while. Дисплей для точек здоровья находится в цикле while перед оператором switch. Оператор switch используется для определения той атаки, которую игрок решает использовать. Если вам нужно увидеть больше кода. Просто скажите, сколько вам нужно увидеть, и я обновлю его. Благодарю!
выясняется, что условие оператора switch было в типе данных char, но у меня были случаи как тип данных int.
Измените блок кода на этот блок кода и вставьте результат в свой вопрос, если просмотр результата еще не решил его для вас.
hit = rand() % atk + 1 + (rand() % 3 + 1);
diff = hit - OppD;
std::cout << "hit: " << hit << "\ndiff:" << diff << "\neHP: " << eHp << std::endl;
if (diff > 0) eHp = eHp - diff;
if (eHp <= 0) break;
OppHit = rand() % OppA + 1;
OppDif = OppHit - def;
std::cout << "OppHit: " << OppHit << "\nOppDif: " << OppDif << "\nhp: " << hp << std::endl;
hp = hp - OppDif;
if (hp <= 0) break;
if
и выполняется ли код внутри, и есть ли что-то необъяснимое (например, условия if не выполнено, хотя условие верно, или неправильные результаты вычитания и т. д.)?