gpt4 book ai didi

c++ - SFML 鼠标 getPosition 无法正常工作

转载 作者:搜寻专家 更新时间:2023-10-31 02:05:49 26 4
gpt4 key购买 nike

我试图让我的光标 Sprite 尝试出现在我的鼠标光标上方,但由于某种原因它没有出现在鼠标光标上方。

代码:

cursorSprite.setPosition(sf::Mouse::getPosition().x, sf::Mouse::getPosition().y);

如您所见,我只是将 setPosition() 与我的 Sprite 一起使用,并将其设置在鼠标的 x 和 y 位置。但是,这不起作用,光标 Sprite 出现在与我的实际鼠标光标位置不同的位置。

为什么?这可能与我设置窗口的方式有关吗?

window(sf::VideoMode(800, 600, 32), "SFML Test", sf::Style::Default)

最佳答案

在窗口模式下运行 SFML 应用程序(以及几乎所有其他应用程序)时,应考虑两个主要坐标系:屏幕坐标和窗口坐标。你得到错误的结果是因为 sf::Mouse::getPosition() 返回屏幕坐标中的点击位置,而你想点击窗口坐标。您可以手动将屏幕坐标转换为窗口坐标,但是使用 SFML 提供的这个接口(interface)要好得多:

sf::Vector2i pos = sf::Mouse::getPosition(window);

pos 将在窗口坐标中。

关于c++ - SFML 鼠标 getPosition 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51222321/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com