Я просматривал документацию SFML для создания кликабельных спрайтов, но пока ничего не нашел.
Ребята, вы думаете, вы могли бы помочь мне?
Есть ничего такого лайк sf::ClickableSprite
в SFML до сих пор, и, вероятно, никогда не будет. (Текущий список классов в SFML)
Тем не менее, вы можете получить это поведение с sf::Sprite
объект и события. Идея проста — как только вы получите sf::Mouse::isButtonPressed(sf::Mouse::Left)
событие, проверьте, находится ли мышь в спрайте. Если это так, выполните действие. Вы можете выполнить другое действие (возможно, расстегивать) когда кнопка отпущена.
Есть SF :: Sprite :: getGlobalBounds () функция, которая возвращает вам положение и размеры спрайта. Есть также научная фантастика :: Мыши :: GetPosition () функция, которая возвращает текущую позицию мыши. Ты можешь использовать sprite.getGlobalBounds().contains(mousePos)
проверить, находится ли мышь в спрайте.
Если вы используете представления, вам нужно добавить положение представления в sf::Mouse::getPosition(window)
, поскольку он получает положение мыши относительно координат окна.
(благодаря Chaosed0 для дополнительных заметок.)