Quantcast
Channel: GameDev.net
Viewing all articles
Browse latest Browse all 17825

Recentering the mouse, fixed timestep

$
0
0
Hi all, I'm struggling with an issue in the way I handle mouse input. This is my current setup/ approach: - I have a fixed timestep for updating game logics/ physics (i.e. 1/60th of a second - rendering happens as fast as the conditions allow it - I have an input system that takes RAW axis's on the input side, and provides logical ranges on the output side (i.e. mouse axis X/Y in, and camera X/Y output) - for the camera 'look'/ rotation, I use relative coordinates. Meaning that when the mouse moved 3 by 3 pixels the last frame, the camera is rotated using that as input - after the game logics read/ retrieved the current logical range, it sets the raw axis input to 0, 0 (because it's relative) (*** A ***) Now, the problem: - depending on debug/ release or framerate, the number of times WM_MOUSEMOVE is called, differs - in the handling of WM_MOUSEMOVE I update the RAW AXIS's values to the inputsystem -- and I reset the mouse cursor The symptom is that the mouselook/ rotation is slower when framerates are higher. I also found out why, this is because the offsets/ relative movement of the mouse is very small, because after each WM_MOUSEMOVE, the cursor is reset (to center of the screen) I thought of different solutions, for example resetting the mouse cursor at the point marked as ***A*** above. But then the game logics would know and act on something called a mouse. This is exactly what I want to prevent with the input handler. Because it could also be joypad or keyboard or whatsoever. Another solution could be that I add a GetRAWAxisValue function to the inputhandler, and check if this is 0, and if it isn't, then reset the mouse cursor (in WM_MOUSEMOVE handling). I'm wondering if someone could point me in the right direction or suggest another solution. Where possible I want to stay with relative, so no absolute mouse positions (because of going out of screen/window bounds etc., + the camera input system currently also expects 'changes', no absolute ranges). Any input is appreciated.

Viewing all articles
Browse latest Browse all 17825

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>