如何使用SFML获得图像的坐标

How to get the coordinates of an image using SFML?

本文关键字:图像 坐标 何使用 SFML      更新时间:2023-10-16

我正在编写一款赛车游戏,我来到了在路上设置障碍的阶段。

为了将它们中的每一个放置在正确的位置,我选择写下我通过使用这个函数得到的坐标:

Mouse::getPosition(RenderWindow)

问题是道路的整个图像是不可见的,只有当汽车移动时才能看到其他部分,而函数getPosition()返回窗口的坐标而不是图像的坐标。

是否有任何函数或方法来转换它们?

我找到了答案:要获得当前鼠标在窗口中的位置:
sf::Vector2i pixelPos = sf::Mouse::getPosition(Window).
并将其转换为世界坐标:
sf::Vector2f worldPos = window . mappixeltocoordds (pixelPos).
在屏幕上书写坐标:
cout<<worldPos.x<<worldPos.y<<'n'
即使视图发生了变化,这个方法也会给出图像的真实坐标。