获取鼠标位置坐标
OpenGL - get mouse position co-ordinates
我正在制作一款2D桌面游戏。游戏棋盘网格是8x8,网格的每个单元格都是一个对象。一个板由64个单元格对象组成。我的目的是弄清楚老鼠在哪个细胞里。我正在尝试通过跟踪鼠标坐标并将其与网格坐标进行比较。
我的坐标系如下:
gluOrtho2D(-4,4,-4,4);
我试图通过在我的更新函数中使用以下命令来获取当前鼠标位置:
POINT p
if (GetCursorPos(&p)){
}
if (ScreenToClient(hWnd, &p))
{
}
然而,尽管这是在跟踪鼠标的坐标,但它并没有正确地跟踪我用gluOrtho2D设置的世界坐标。我怎样才能做到这一点呢?
这取决于你的glViewPort
假设你有:glViewport(0,0,640, 640);
鼠标位置是(mousePos.x,mousePos.y),你想知道的世界位置是(world. y)。x, world.y)
让屏幕的左上角为(0,0)坐标
那么我们可以这样做:
世界。x = -4.0 + (mousePos. x)X/640.0) * (4*2)
世界。y = 4.0 - (mousePos。Y/640.0) * (4*2)
我们在这里做的是使用鼠标在屏幕内的归一化位置(mousePos)进行线性插值。X/640),然后将该值乘以单词的宽度(4*2)。假设网格的上/左角从(- 4,4)开始,我们添加世界位置的偏移量。
相关文章:
- 将值指定给向量(2D)的向量中的某个位置
- QGraphicsPolygonItem在拖动时未更新QPolygonF坐标
- OpenGL 4.3 错误地将第 4 个纹理坐标映射到与第 3 个纹理坐标相同的位置
- 跳转到通过输入坐标定义的控制台屏幕位置
- Box2D 如何处理位置和坐标?
- OPENCV(C ) - 从已知的3D对象和相机位置计算图像的2D坐标
- 如何设置GLFW窗口的(0,0)坐标位置
- OpenGL获取离当前鼠标位置最近的世界三维点的三维坐标
- 从2D纹理上的位置(x,y)计算.obj文件中的vt(u,v)坐标
- 获取RGBDemo的鼠标位置坐标
- 相机在世界坐标中的位置来自 cv::solvePnP
- 不更新坐标位置
- 如何将鼠标位置从SFML转换为OpenGL坐标
- 对象模型加载纹理坐标和顶点位置没有正确加载
- 获取当前旋转和位置坐标
- 获取鼠标位置坐标
- glm::unProject将鼠标位置转换为3个坐标
- OpenGL ES-从相机位置获取2D像素坐标
- 从文本控件中检索字符位置的客户端区域坐标
- PC的IP地址到位置坐标