_MOUSEMOVEMENTX

From QB64 Phoenix Edition Wiki
Revision as of 20:07, 24 March 2024 by RhoSigma (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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.
  • Note: A _MOUSESHOW statement will disable _MOUSEMOVEMENTX or _MOUSEMOVEMENTY relative mouse movement reads.
  • Can also be used to check for any mouse movements to enable a program or close Screen Saver Programs.
  • Sets the mouse to a relative movement mode which can be read by _WHEEL instead of _AXIS as mouse device 2.


Examples

Example 1
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

Example 2
MOD is used to keep horizontal movement of the circle and cursor inside of the SCREEN 13 window(320).
Note when using the function this way, then 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.
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


See also



Navigation:
Main Page with Articles and Tutorials
Keyword Reference - Alphabetical
Keyword Reference - By usage
Report a broken link