Я использую SFML, чтобы сделать простую файтинговую игру.
У меня есть класс Fighter, который я использую для создания двух объектов.
В основном:
Fighter fighterOne;
Fighter fighterTwo;
Оба бойца модифицируют одни и те же переменные, в основном isLow () и isGuarded ().
Чтобы проверить столкновение между двумя бойцами, я вызываю checkHit () в updateFighter () (в основном, если боец обновляет ход, проверяет, ударил ли он), я проверяю столкновение в своем классе collision.h
Примечание: я выбираю, какой боец в настоящее время обновляется с помощью bool isRight. если это правда, он изменяет 2-го бойца, иначе он модифицирует первый.
void Fighter::updateFighter(Sprite& fighter, Sprite& otherFighter, bool isRight)
{
if (Keyboard:isKeyPressed(attack)
{
//animates the attack
collision.checkHit(fighter, otherFighter, isLow, isGuarded, lowAttack, isRight);
}
}
Проблема в том, что с вышесказанным я пытаюсь проверить значение isLow противоположного объекта истребителя (fighterTwo). Но когда я называю это так, он отключается от используемого в настоящее время isLow, который принадлежит fighterOne. Как передать значение isLow для fighterTwo в checkHit вместо fighterOne?