使用SDL 1.2我使用SDL_WM_GrabInput将(隐藏)鼠标置于屏幕中心。这给了我第一人称射击游戏的无限转身自由。 SDL2不再提供此功能,但具有SDL_SetWindowGrab。在每次循环(事件读取)之后,这似乎不会将鼠标重新定位到屏幕的中心。在鼠标撞到窗口边缘之前,我只能将播放器转动一圈半,并且不再产生xrel值。这是一个错误还是我应该使用另一个功能?
答案 0 :(得分:3)
尝试SDL_SetRelativeMouseMode()
和SDL_GetRelativeMouseState()
。
或者用SDL_WarpMouseInWindow()
自己重新定位每一帧鼠标。