SFML и C++ Уроки \ Разработка игр › Форумы › Логика игр › Реализация атаки и защиты › Ответ в теме: Реализация атаки и защиты
zelloooo1997, Здравствуйте!
У родительского класса Unit можно объявить protected поля health и damage, а также публичный метод attack:
C++
1 2 3 4 5 6 7 8 9 10 11 12 |
class Unit { public: void attack(Unit* attacked) { attacked->health -= this->damage; } protected: int health; int damage; }; |
Тогда, если player атакует enemy:
C++
1 2 3 4 |
Unit* player = new Player(); Unit* enemy = new Enemy(); player->attack(enemy); // Игрок атакует врага, нанося ему урон |
От себя могу добавить, что мой код не является исчерпывающим. Не хватает полей (вроде maxHealth и т.д.), необходимы полноценные конструкторы, которые будут инициализировать поля, проверка текущего здоровья атакуемого юнита после нанесения урона (чтобы знать о его смерти, если таковая случится). Одним словом, код требует вашей доработки