SFML и C++ Уроки \ Разработка игр › Форумы › SFML Graphics › Поворот спрайта и проблема пересечения с другими объектами › Ответ в теме: Поворот спрайта и проблема пересечения с другими объектами
Спасибо за ответ. В принципе, все работает более-менее нормально, но иногда все-таки пролетает мимо, или неадекватно попадает.
В процессе исправления этого бага, возникла идея вместо спрайта(поскольку он у меня больше напоминает треугольник) использовать два пересекающихся прямоугольника sf::RectangleShape. Но теперь возникла проблема с функцией пересечения с остальными объектами. RectangleShape взят из-за того, что его можно вращать и изменять размер.
Фрагмент кода:
1 2 3 4 5 6 7 8 9 |
for (itbul = bullets.begin(); itbul != bullets.end(); itbul++) { if (((*itbul)->getRect().intersects(hero.body1 ???) || (*itbul)->getRect().intersects(hero.body2 ???)) && (*itbul)->hero_shoot != 1) { (*itbul)->health = 0; (*itbul)->life = false; hero.health -= (*itbul)->damage; } } |
getRect() – возвращает FloatRect спрайта пули
body1 и body2 – это sf::RectangleShape
??? – это для наглядности вопроса
Вопрос: есть ли какая-то функция пересечения объектов типа FloatRect и RectangleShape?