C++ C++;SDL2立即获取鼠标坐标

C++ C++;SDL2立即获取鼠标坐标,c++,mouseevent,mouse,sdl,sdl-2,C++,Mouseevent,Mouse,Sdl,Sdl 2,我正在使用Code::Blocks中的SDL2库,用MinGW编译,运行在windows7上,用C++制作一个2D鸟瞰图射击游戏 一切进展顺利,但我遇到了一个主要问题,我还没有找到任何有效的解决办法。作为一名射击手,鼠标涉及很多,但我永远无法返回鼠标在正确帧的位置。。。它似乎总是在后面2-5帧左右 例如,我需要十字线图像始终位于(不可见)鼠标上。我知道我可以使用像CreateCursor这样的鼠标功能,但我仍然需要精确的坐标,这样目标就不会关闭。我使用的基本脚本如下: 现在,如果我在(xMous

我正在使用Code::Blocks中的SDL2库,用MinGW编译,运行在windows7上,用C++制作一个2D鸟瞰图射击游戏

一切进展顺利,但我遇到了一个主要问题,我还没有找到任何有效的解决办法。作为一名射击手,鼠标涉及很多,但我永远无法返回鼠标在正确帧的位置。。。它似乎总是在后面2-5帧左右

例如,我需要十字线图像始终位于(不可见)鼠标上。我知道我可以使用像CreateCursor这样的鼠标功能,但我仍然需要精确的坐标,这样目标就不会关闭。我使用的基本脚本如下:

现在,如果我在(xMouse-10,yMouse-10)(用于原点的减法)渲染十字线图像,它将始终跟踪光标后面。此外,一旦鼠标停止移动,坐标将需要几帧才能停止移动

为我提供一种更好的精确鼠标跟踪方法


S.I对于C++和SDL是很新的,所以如果你愿意的话,提供任何杂项建议。

< P>这是一个很长的尝试,但是在我的Linux SDL2项目中,我有类似的鼠标延迟,这是因为在我的渲染器上设置了SDLIReReReRePrimeTVSyc标志。删除该标志修复了延迟。可能值得一试。

这有点遥不可及,但在我的Linux SDL2项目中,我也有类似的鼠标延迟,这是由于在渲染器上设置SDL_RENDERER_PRESENTVSYNC标志造成的。删除该标志修复了延迟。可能值得一试。

您使用的是什么操作系统?这可能与您是否正在使用Windows 8.0有关。您是否尝试调用
SDL_GetGlobalMouseState(&xMouse,&yMouse)不检查SDL\U事件?所以,只需在主循环的每次执行中获取鼠标位置,并检查这是否解决了问题。@lmNt我已经尝试过了,仍然有延迟。您使用的是什么操作系统?这可能与您是否正在使用Windows 8.0有关。您是否尝试调用
SDL_GetGlobalMouseState(&xMouse,&yMouse)不检查SDL\U事件?因此,只需在主循环的每次执行中获取鼠标位置,并检查这是否解决了问题。@lmNt我已尝试过此方法,但仍有延迟。
bool quit = false;
SDL_Event e;
int xMouse, yMouse;

while(quit == false)
{
    while(SDL_PollEvent(&e) != 0)
    {
        if(e.type == SDL_MOUSEMOTION)
        {
            SDL_GetGlobalMouseState(&xMouse,&yMouse);
        }
    }
}