_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.

See Also