Я следую этому руководству, чтобы создать RenderWindow в QFrame.
Все отлично, кроме этого
sf::Vector2i pixelPos = sf::Mouse::getPosition(); sf::Vector2f worldPos = RenderWindow::mapPixelToCoords(pixelPos);
В sf::Mouse::getPosition();
Он ссылается на положение мыши на моем экране, а не на мой QFrame.
Какую переменную я должен заполнить ()
sf::Mouse::getPosition
благодаря
class QSFMLCanvas: public QWidget, public sf::RenderWindow
поэтому вы можете вызвать sf::Mouse::getPosition(*this)
из методов вашего класса.
Вы должны использовать
sf::Mouse::GetPosition(sf::RenderWindow &Game);
Так что это относительно вашего окна, а не вашего полного экрана.
sf::Mouse::getPosition(sf::RenderWindow);
дать ошибку, поэтому я использую этоsf::Mouse::getPosition(sf::RenderWindow());
но я ссылаюсь на (0,0) каждый раз, когда нажимаю.RenderWindow
, я просто показываю тип.