SFML и C++ Уроки \ Разработка игр › Форумы › Логика игр › Обнаружение персонажа врагом › Ответ в теме: Обнаружение персонажа врагом
я зделал через создание круглой формы, радиус которой равен радиусу поражения юнита, дальше
CircleShape AttackRangeCircle;
AttackRangeCircle.setRadius(attack_radius);
установил этот круг в центр моего юнита в команде update(), теперь он будет двигаться с моим юнитом:
AttackRangeCircle.setPosition(x – AttackRangeCircle.getRadius(), y – AttackRangeCircle.getRadius());//обновляем положение круга который является радиусом атаки обьекта
и в игровом цикле установил проверку на пересечение с обьектами через функцию:
if (Object1->AttackRangeCircle.getGlobalBounds().intersects(Object2->sprite.getGlobalBounds()))
{
return true;
}
когда спрайт объекта2 попадает на форму круга объекта1, функция возвращает true и первый обьект стреляет во второй.