Как сделать кликабельный спрайт в SFML?

Я просматривал документацию SFML для создания кликабельных спрайтов, но пока ничего не нашел.
Ребята, вы думаете, вы могли бы помочь мне?

3

Решение

Есть ничего такого лайк 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 для дополнительных заметок.)

8

Другие решения


По вопросам рекламы [email protected]