ON STRIG(n): Difference between revisions

From QB64 Phoenix Edition Wiki
Jump to navigation Jump to search
(Created page with "The ON STRIG(n) statement is an event procedure that directs program flow upon the press of a specified joystick button. {{PageSyntax}} : '''ON STRIG'''({{Parameter|buttonFunction}}) GOSUB {{{Parameter|lineNumber}}|{{Parameter|lineLabel}}} : '''ON STRIG'''({{Parameter|buttonFunction}}[, {{Parameter|joystickNumber}}]) {GOSUB {{{Parameter|lineNumber}}|{{Parameter|lineLabel}}} | SUBprocedure} * In '''QB64''' the value can be any button function number w...")
 
No edit summary
Line 19: Line 19:
{{PageExamples}}
{{PageExamples}}
''Example 1:'' Reading a STRIG event to do something in a [[GOSUB]] procedure.
''Example 1:'' Reading a STRIG event to do something in a [[GOSUB]] procedure.
{{CodeStart}} '' ''
{{CodeStart}}
{{Cl|ON STRIG(n)|ON STRIG}}(0) {{Cl|GOSUB}} 10
{{Cl|ON STRIG(n)|ON STRIG}}(0) {{Cl|GOSUB}} 10
{{Cl|STRIG(n)|STRIG}}(0)ON
{{Cl|STRIG(n)|STRIG}}(0)ON
Line 35: Line 35:
     {{Cl|_DELAY}} 0.02
     {{Cl|_DELAY}} 0.02
{{Cl|NEXT}}
{{Cl|NEXT}}
{{Cl|RETURN}} '' ''
{{Cl|RETURN}}
{{CodeEnd}}
{{CodeEnd}}


Line 56: Line 56:
{{Cl|SUB}} JoyButton (js {{Cl|AS}} {{Cl|LONG}})
{{Cl|SUB}} JoyButton (js {{Cl|AS}} {{Cl|LONG}})
{{Cl|PRINT}} "Joystick #"; js \ 256 + 1; "button #"; (js {{Cl|AND (boolean)|AND}} 255) + 1; "pressed!"
{{Cl|PRINT}} "Joystick #"; js \ 256 + 1; "button #"; (js {{Cl|AND (boolean)|AND}} 255) + 1; "pressed!"
{{Cl|END SUB}} '' ''
{{Cl|END SUB}}
{{CodeEnd}}
{{CodeEnd}}
:''Explanation:'' Up to 256 controllers can be used in QB64 with many buttons to read.
:''Explanation:'' Up to 256 controllers can be used in QB64 with many buttons to read.

Revision as of 02:13, 23 January 2023

The ON STRIG(n) statement is an event procedure that directs program flow upon the press of a specified joystick button.


Syntax

ON STRIG(buttonFunction) GOSUB {lineNumber|lineLabel}
ON STRIG(buttonFunction[, joystickNumber]) {GOSUB {lineNumber|lineLabel} | SUBprocedure}


  • In QB64 the value can be any button function number with any number of joysticks. See STRIG and STICK for parameters.
  • There are two buttonFunction for each button. The even numbered function is always the event of any press since last read.
  • The statement sends the procedure to a line number, line label or SUB procedure when a button event occurs.


QBasic/QuickBASIC

  • In QBasic, value of n could only be a number from 0 to 3 only as it could only monitor 2 joystick buttons and 2 joysticks.


Examples

Example 1: Reading a STRIG event to do something in a GOSUB procedure.

ON STRIG(0) GOSUB 10
STRIG(0)ON

DO
    PRINT ".";
    _LIMIT 30
LOOP UNTIL INKEY$ <> ""
END

10
a$ = "[STRIG 0 EVENT]"
FOR x = 1 TO LEN(a$)
    PRINT MID$(a$, x, 1);
    _DELAY 0.02
NEXT
RETURN


Example 2: Displays any number of game pad or joystick device button presses.

FOR j = 1 TO 256
    FOR b = 1 TO 256
        ON STRIG((b - 1) * 4, j) JoyButton (j - 1) * 256 + b - 1
    NEXT
NEXT
STRIG ON

DO
    PRINT ".";
    _LIMIT 30
LOOP UNTIL INKEY$ <> ""
END

SUB JoyButton (js AS LONG)
PRINT "Joystick #"; js \ 256 + 1; "button #"; (js AND 255) + 1; "pressed!"
END SUB
Explanation: Up to 256 controllers can be used in QB64 with many buttons to read.


See also


External links



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