SDL_Surface的相对鼠标位置
Relative mouse position of SDL_Surface
在我的应用程序中,我需要从SDL_Surface返回相对鼠标位置,问题是返回的鼠标位置相对于SDL窗口而不是SDL_Surface。我想我的问题是做这件事最简单/最有效的方法是什么。有问题就问。谢谢。
编辑:对不起,我应该解释得更好,我有SDL_Surface* Surf_Display;
在Surf_display
上有一个图像,说它是1000 x 1000,所以为了在600 x 600的窗口上看到图像,我有一个相机,我可以四处移动(实际上是表面移动而不是相机)例如,为了向右看图像,我移动表面-1如果有意义的话。所以我的问题是当我在表面(图像)上点击鼠标时鼠标会返回光标在窗口中的位置,我想要的是它会返回光标在表面(图像)上的位置我希望这能更好地解释情况。再次感谢
只需添加(或减去,取决于您如何看待它)鼠标坐标的偏移量。所以你要像这样画出曲面:
SDL_Rect dest_rect = { -camera.x, -camera.y };
SDL_BlitSurface(image_surface, NULL, screen_surface, &dest_rect);
我不知道你是否在使用基于事件的鼠标处理,或者你是否在使用SDL_GetMouseState,但无论哪种方式,你都会简单地添加camera。X和相机。Y指向鼠标位置,例如:
int x, y;
SDL_GetMouseState(&x, &y);
x += camera.x;
y += camera.y;
相关文章:
- 使用 dlib 记录鼠标位置
- 获取窗口中的鼠标位置
- 将文本添加到鼠标位置时,请单击“给出分割故障”
- 在鼠标位置移动精灵
- 如何在Mac OSX上的窗口客户端内获取真实的鼠标位置?
- 如何始终获得QT鼠标位置
- QT QgraphicView和Qgraphicscene鼠标位置
- QT:QGraphicsScene鼠标位置始终(0,0)
- SFML鼠标位置和碰撞从文件加载
- 根据鼠标位置缩小到窗口中
- 如何根据鼠标位置旋转精灵
- OpenGL获取离当前鼠标位置最近的世界三维点的三维坐标
- C++ SDL 根据鼠标位置绘制动态矩形
- 如何检索WM_COMMAND中的鼠标位置
- Qt mouseMoveEvent-跟踪鼠标位置
- OpenGl获取鼠标位置
- 获取RGBDemo的鼠标位置坐标
- 通过互联网发送鼠标位置
- 如何使用可可获得鼠标位置差异的变化
- 鼠标位置并单击 sfml 中的检测