我正在使用 SFML 2.1 并使用 MingW 4.8.1 进行构建。 当我尝试调用使我的 MousePosition RELATIVE 相对于窗口对象的函数的特定重载时...
sf::RenderWindow* window;
window = new sf::RenderWindow(sf::VideoMode(640, 480, 32), "Render Window");
sf::Vector2i coords = sf::Mouse::getPosition(window)
...我收到以下错误:
error: no matching function for call to 'sf::Mouse::getPosition(sf::RenderWindow*&)'
note: candidates are:
static sf::Vector2i sf::Mouse::getPosition()
candidate expects 0 arguments, 1 provided
static sf::Vector2i sf::Mouse::getPosition(const sf::Window&)
no known conversion for argument 1 from 'sf::RenderWindow*' to 'const sf::Window&'
getPosition()
函数:
static Vector2i getPosition();
static Vector2i getPosition(const Window& relativeTo);
摘自 SFML 2.1 引用:
sf::RenderWindow
派生自 sf::Window
,因此它继承了它的所有特性:事件、窗口管理、OpenGL 渲染等。
我确定 getPosition
接受 RenderWindow
类对象。出于某种原因,它不接受对此类对象的引用。
对此可以做些什么?
最佳答案
您正在将 RenderWindow* 传递给 getPosition(),而不是 RenderWindow。 试试这个:
sf::Vector2i coords = sf::Mouse::getPosition(*window);
关于c++ - SFML 试图将类的引用作为参数传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25493918/