如何在SFML中创建可点击的精灵?

时间:2014-05-07 23:47:17

标签: c++ button sprite sfml clickable

我一直在查看SFML文档以制作可点击的精灵,但到目前为止我还没有找到任何东西。 你认为你可以帮助我吗?

1 个答案:

答案 0 :(得分:8)

到目前为止,SFML中有之类的sf::ClickableSprite,可能永远不会有。 (Current list of classes in SFML

但是,您可以使用sf::Sprite对象和事件获取此行为。这个想法很简单 - 只要你得到sf::Mouse::isButtonPressed(sf::Mouse::Left)事件,检查鼠标是否在精灵中。如果是,请执行操作。您可以在释放按钮时执行其他操作(可能是撤消)。

sf::Sprite::getGlobalBounds()函数可以返回精灵的位置和尺寸。还有sf::Mouse::getPosition()函数,它返回鼠标的当前位置。 您可以使用sprite.getGlobalBounds().contains(mousePos)检查鼠标是否在精灵中。

如果您正在使用视图,则需要将视图的位置添加到sf::Mouse::getPosition(window),因为它会获得相对于窗口坐标的鼠标位置。

(感谢Chaosed0了解其他说明。)