SDL2 鼠标抓取不起作用



在SDL 1.2中,我使用SDL_WM_GrabInput将(隐藏的)鼠标居中放在屏幕上。这给了我第一人称射击游戏无限的转弯自由。SDL2 不再提供此功能,但具有SDL_SetWindowGrab。这似乎不会在每次循环(事件读取)后将鼠标重新定位到屏幕中心。在鼠标碰到窗口边缘并且不再产生 xrel 值之前,我只能将播放器旋转 1 次半。这是一个错误还是我应该使用其他功能?

试一试SDL_SetRelativeMouseMode() SDL_GetRelativeMouseState()

或者,用

SDL_WarpMouseInWindow()将鼠标每帧重新居中。