MOUSEMOVEMENTY: Difference between revisions

From QB64 Phoenix Edition Wiki
Jump to navigation Jump to search
(Created page with "{{DISPLAYTITLE:_MOUSEMOVEMENTY}} The _MOUSEMOVEMENTY function returns the relative vertical position of the mouse cursor as positive or negative values. {{PageSyntax}} : {{Parameter|verticalMove}} = _MOUSEMOVEMENTY * Returns the relative vertical cursor pixel position compared to the previous cursor position. Negative values are up moves. * '''Note:''' A _MOUSESHOW statement will disable _MOUSEMOVEMENTX or _MOUSEMOVEMENTY relative mouse movement...")
 
No edit summary
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
{{DISPLAYTITLE:_MOUSEMOVEMENTY}}
{{DISPLAYTITLE:_MOUSEMOVEMENTY}}
The [[_MOUSEMOVEMENTY]] function returns the relative vertical position of the mouse cursor as positive or negative values.  
The [[_MOUSEMOVEMENTY]] function returns the relative vertical position of the mouse cursor as positive or negative values.




{{PageSyntax}}  
{{PageSyntax}}
: {{Parameter|verticalMove}} = [[_MOUSEMOVEMENTY]]
: {{Parameter|verticalMove}} = [[_MOUSEMOVEMENTY]]


Line 13: Line 13:




''Example:'' MOD is used to keep vertical movement of circle and cursor inside of the SCREEN 13 window(200).  
{{PageExamples}}
{{CodeStart}} '' ''
; Example 1: Since values returned are relative to the last position, the returns can be positive or negative.
{{Cl|SCREEN}} 13, , 1, 0
{{CodeStart}}
{{Cl|DO...LOOP|DO}}: {{Cl|_LIMIT}} 200
{{Cl|SCREEN}} {{Text|12|#F580B1}}
  {{Cl|DO...LOOP|DO}} {{Cl|WHILE}} {{Cl|_MOUSEINPUT}}
PX = {{Text|320|#F580B1}}: PY = {{Text|240|#F580B1}} {{Text|<nowiki>'center position</nowiki>|#919191}}
    x = x + {{Cl|_MOUSEMOVEMENTX}}
{{Cl|DO}}: {{Cl|_LIMIT}} {{Text|200|#F580B1}}
    y = y + {{Cl|_MOUSEMOVEMENTY}}
    {{Cl|DO...LOOP|DO WHILE}} {{Cl|_MOUSEINPUT}}
  {{Cl|LOOP}}
        PX = PX + {{Cl|_MOUSEMOVEMENTX}}
  x = (x + 320) {{Cl|MOD}} 320 'keeps object on screen
        PY = PY + {{Cl|_MOUSEMOVEMENTY}}
  y = (y + 200) {{Cl|MOD}} 200 'remove if off screen moves are desired
    {{Cl|LOOP}}
  {{Cl|CLS}}
    {{Cl|CLS}}
  {{Cl|CIRCLE}} (x, y), 20
    {{Cl|CIRCLE}} (PX, PY), {{Text|10|#F580B1}}, {{Text|10|#F580B1}}
  {{Cl|PCOPY}} 1, 0
    {{Cl|LOCATE}} {{Text|1|#F580B1}}, {{Text|1|#F580B1}}: {{Cl|PRINT}} PX, PY
{{Cl|LOOP}} {{Cl|UNTIL}} {{Cl|INKEY$}} <> "" 'press any key to exit '' ''
{{Cl|DO...LOOP|LOOP UNTIL}} {{Cl|INKEY$}} = {{Cl|CHR$}}({{Text|27|#F580B1}}) {{Text|<nowiki>'escape key exit</nowiki>|#919191}}
{{CodeEnd}}
 
----
 
; 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.
{{CodeStart}}
{{Cl|SCREEN}} {{Text|13|#F580B1}}, , {{Text|1|#F580B1}}, {{Text|0|#F580B1}}
{{Cl|DO}}: {{Cl|_LIMIT}} {{Text|200|#F580B1}}
    {{Cl|DO...LOOP|DO WHILE}} {{Cl|_MOUSEINPUT}}
        x = x + {{Cl|_MOUSEMOVEMENTX}}
        y = y + {{Cl|_MOUSEMOVEMENTY}}
    {{Cl|LOOP}}
    x = (x + {{Text|320|#F580B1}}) {{Cl|MOD}} {{Text|320|#F580B1}} {{Text|<nowiki>'keeps object on screen</nowiki>|#919191}}
    y = (y + {{Text|200|#F580B1}}) {{Cl|MOD}} {{Text|200|#F580B1}} {{Text|<nowiki>'remove if off screen moves are desired</nowiki>|#919191}}
    {{Cl|CLS}}
    {{Cl|CIRCLE}} (x, y), {{Text|20|#F580B1}}
    {{Cl|PCOPY}} {{Text|1|#F580B1}}, {{Text|0|#F580B1}}
{{Cl|DO...LOOP|LOOP UNTIL}} {{Cl|INKEY$}} <> {{Text|<nowiki>""</nowiki>|#FFB100}} {{Text|<nowiki>'press any key to exit</nowiki>|#919191}}
{{CodeEnd}}
{{CodeEnd}}
: '''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.




Line 36: Line 54:
* [[_DEVICES]], [[_DEVICEINPUT]]
* [[_DEVICES]], [[_DEVICEINPUT]]
* [[_WHEEL]], [[_LASTWHEEL]]
* [[_WHEEL]], [[_LASTWHEEL]]
* [[_AXIS]], [[_LASTAXIS]]  
* [[_AXIS]], [[_LASTAXIS]]
* [[_MOUSESHOW]], [[_MOUSEHIDE]]
* [[_MOUSESHOW]], [[_MOUSEHIDE]]
* [[Screen Saver Programs]]
* [[Screen Saver Programs]]

Latest revision as of 20:10, 24 March 2024

The _MOUSEMOVEMENTY function returns the relative vertical position of the mouse cursor as positive or negative values.


Syntax

verticalMove = _MOUSEMOVEMENTY


  • Returns the relative vertical cursor pixel position compared to the previous cursor position. Negative values are up moves.
  • 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