_MOUSEMOVEMENTX - QB64Official/qb64 GitHub Wiki
The _MOUSEMOVEMENTX function returns the relative horizontal position of the mouse cursor as positive or negative values.
Syntax
horizontalMove = _MOUSEMOVEMENTX
- Returns the relative horizontal cursor pixel position compared to the previous cursor position. Negative values are moves to the left.
- Can also be used to check for any mouse movements to enable a program or close Screen Saver Programs.
- On Windows only, _MOUSEMOVEMENTX will continue to track the mouse when it is outside the program window.
Example(s)
Since values returned are relative to the last position, the returns can be positive or negative.
SCREEN 12
PX = 320: PY = 240 'center position
DO: _LIMIT 200
DO WHILE _MOUSEINPUT
PX = PX + _MOUSEMOVEMENTX
PY = PY + _MOUSEMOVEMENTY
LOOP
CLS
CIRCLE (PX, PY), 10, 10
LOCATE 1, 1: PRINT PX, PY
LOOP UNTIL INKEY$ = CHR$(27) 'escape key exit
MOD is used to keep horizontal movement of the circle and cursor inside of the SCREEN 13 window(320).
SCREEN 13, , 1, 0
DO: _LIMIT 200
DO WHILE _MOUSEINPUT
x = x + _MOUSEMOVEMENTX
y = y + _MOUSEMOVEMENTY
LOOP
x = (x + 320) MOD 320 'keeps object on screen
y = (y + 200) MOD 200 'remove if off screen moves are desired
CLS
CIRCLE (x, y), 20
PCOPY 1, 0
LOOP UNTIL INKEY$ <> "" 'press any key to exit
NOTE: When using the function this way, give the user a keypress exit option. Make sure the user has some way to exit that is not dependent on clicking the X button.