C++ 文本对象的getLocalBounds替代方案?(SFML)

C++ 文本对象的getLocalBounds替代方案?(SFML),c++,user-interface,sprite,sfml,C++,User Interface,Sprite,Sfml,尝试使用SFML为Comp Sci final制作按钮,但确实不想在每个按钮上绘制不可见的精灵 我找到了一些解决方案,但它们都使用较旧版本的sfml,这些函数后来被删除或更改,不确定它们更改为什么 while(window.isOpen()){ 事件; while(window.pollEvent(事件)){ 开关(事件类型) { 案例事件::已结束: window.close(); coutgetLocalBounds返回文本的本地坐标中的边界。您需要使用getGlobalBounds以世界坐

尝试使用SFML为Comp Sci final制作按钮,但确实不想在每个按钮上绘制不可见的精灵

我找到了一些解决方案,但它们都使用较旧版本的sfml,这些函数后来被删除或更改,不确定它们更改为什么

while(window.isOpen()){
事件;
while(window.pollEvent(事件)){
开关(事件类型)
{
案例事件::已结束:
window.close();

cout
getLocalBounds
返回文本的本地坐标中的边界。您需要使用
getGlobalBounds
以世界坐标获取它

您还需要使用窗口的
mappixeltoords
方法将鼠标坐标转换为世界坐标

应该是这样的:

if(equationsButtonText.getGlobalBounds().contains(window.mapPixelToCoords({event.mouseButton.x, event.mouseButton.y}))){
    cout << "This works!" << endl;
}
if(equalationsbuttonext.getGlobalBounds()包含(window.mappixeltoords({event.mouseButton.x,event.mouseButton.y}))){

我不能忘记从学校给我自己发送.cpp文件,所以我明天会检查,但是,1.getGlobalBounds我相信给了我一个关于FloatRect的错误。2.不使用视图。这两个函数都返回FloatRect,因此如果使用相同的方法,它应该不会发出任何错误。如果使用默认视图,则可以忽略mapPixelToCoords。如果(equalationsButtonText.getGlobalBounds().contains(window.mapPixelToCoords({event.mouseButton.x,event.mouseButton.y})))我不知道为什么它能工作,但它能工作。非常感谢!