Top.Mail.Ru
Ответы

Как установить глобальные кости объекта на спрайт КОРРЕКТНО в sfml c++

У меня есть спрайт без заднего фона. Мне нужно сделать коллизию этого спрайта через getglobalbounds, но что бы он отображал границы спрайта корректно, то есть по контуру спрайта, а не в форме квадрата. Если такое не возможно, то подскажите другие методы для реализации этого.

Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Аватар пользователя
Мудрец

Для того чтобы установить глобальные координаты объекта на спрайт в SFML C++, вы можете использовать метод setOrigin() для установки точки, относительно которой будет происходить отображение и позиционирование спрайта


sf::Sprite sprite;

// Задайте текстуру спрайта
// Установите точку origin в центр спрайта

sf::FloatRect bounds = sprite.getLocalBounds();

sprite.setOrigin(bounds.width / 2, bounds.height / 2);
// Установите позицию спрайта

sprite.setPosition(x, y);
// Отобразите спрайт

window.draw(sprite);

Это позволит установить точку origin спрайта в его центр, что позволит отображать границы спрайта по его контуру, а не в форме квадрата.