2012-05-08 64 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