2012-05-08 57 views
4

对于SDL 1.2,我使用SDL_WM_GrabInput将(隐藏)鼠标放在屏幕中央。这给了我第一个人射手的无限转身自由。 SDL2不再提供此功能,但具有SDL_SetWindowGrab。这似乎并没有在每个循环(事件读取)之后将鼠标重新定位到屏幕的中心。在鼠标击中窗口边缘之前,我只能将玩家转过1.5次,不再产生xrel值。这是一个错误还是有我应该使用的另一个功能?SDL2鼠标抓取不起作用

回答

3
+1

我发现在Windows上有一个SDL_SetRelativeMouseMode的问题,所以我已经用鼠标中心选项去了。只是为了完成这个职位。在主循环结束时,我使用SDL_WarpMouseInWindow(win,cw,ch); (cw是中心宽度,ch,中心高度)将光标置于窗口中心。在SDL_MOUSEMOTION下的事件循环中,我从光标的当前位置减去屏幕的中心:mouseMovement + =(cw - e.motion.x) – ste3e