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

Ski*_*zie 3 c++ button sprite sfml clickable

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

sja*_*rni 8

什么sf::ClickableSprite的SFML到目前为止,大概永远不会有.(SFML中的当前类列表)

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

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

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

(感谢Chaosed0的附加说明.)