有什么样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的附加说明.)