Созданные ответы форума
-
АвторСообщения
-
“Это же элементарно, Ватсон!” hero.body1.getGlobalBounds(), не поставил скобки и весь вечер изобретал велосипеды…
Спасибо за ответ. В принципе, все работает более-менее нормально, но иногда все-таки пролетает мимо, или неадекватно попадает.
В процессе исправления этого бага, возникла идея вместо спрайта(поскольку он у меня больше напоминает треугольник) использовать два пересекающихся прямоугольника sf::RectangleShape. Но теперь возникла проблема с функцией пересечения с остальными объектами. RectangleShape взят из-за того, что его можно вращать и изменять размер.
Фрагмент кода:
C++123456789for (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?
Так попробуй, у меня работает.
if (event.type == sf::Event::MouseButtonPressed) // Используем мышь
if (event.key.code == sf::Mouse::Button::Right) // Сразу же уточняем какую клавишу, в данном случае правую
{
std::cout << “Что-то там выводится” << std::endl;
} -
АвторСообщения