1
1
Fork 0
mirror of https://github.com/QB64-Phoenix-Edition/QB64pe.git synced 2024-07-26 14:25:53 +00:00
QB64-PE/internal/help/ON_STRIG(n).txt
SMcNeill 6e01fc8dce Altered string compare routines (<,<=,>,>=) so they don't give false results with CHR$(0).
Added new _STRCMP and _STRICMP commands for quick string comparisons.
Cleaned up QB64 to finish removing the QUI (quick user insert) code and folders.
Altered UCASE and LCASE routines to be faster in some situations for us.
2014-09-22 08:19:03 -04:00

69 lines
2.3 KiB
Plaintext

The '''ON STRIG(n)''' statement is an event procedure that directs program flow upon the press of a specified joystick button.
{{PageSyntax}}
:: ON STRIG(''button_function'') GOSUB {linenumber|linelabel}
QB64 {{PageSyntax}}
:: ON STRIG(''button_function''[, ''joystick_number'']) {GOSUB {linelabel|linenumber}|sub-procedure}
* In '''QB64''' the value can be any button function number with any number of joysticks. See [[STRIG]] and [[STICK]] for parameters.
* In Qbasic, value of ''n'' can be a number from 0 to 3 only as it can only monitor 2 joystick buttons and 2 joysticks.
* There are two ''button functions'' 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, [[SUB]] or [[GOSUB]] procedure or line number when a button event occurs.
''Example 1:'' Reading a STRIG event to do something in a [[GOSUB]] procedure.
{{CodeStart}} '' ''
{{Cl|ON STRIG(n)|ON STRIG}}(0) {{Cl|GOSUB}} 10
{{Cl|STRIG(n)|STRIG}}(0)ON
{{Cl|DO...LOOP|DO}}
{{Cl|PRINT}} &quot;.&quot;;
{{Cl|_LIMIT}} 30
{{Cl|LOOP}} {{Cl|UNTIL}} {{Cl|INKEY$}} &lt;&gt; &quot;&quot;
{{Cl|END}}
10
a$ = &quot;[STRIG 0 EVENT]&quot;
{{Cl|FOR...NEXT|FOR}} x = 1 {{Cl|TO}} {{Cl|LEN}}(a$)
{{Cl|PRINT}} {{Cl|MID$}}(a$, x, 1);
{{Cl|_DELAY}} 0.02
{{Cl|NEXT}}
{{Cl|RETURN}} '' ''
{{CodeEnd}}
''Example 2:'' Displays any number of game pad or joystick device button presses.
{{CodeStart}}
{{Cl|FOR...NEXT|FOR}} j = 1 {{Cl|TO}} 256
{{Cl|FOR...NEXT|FOR}} b = 1 {{Cl|TO}} 256
{{Cl|ON STRIG(n)|ON STRIG}}((b - 1) * 4, j) JoyButton (j - 1) * 256 + b - 1
{{Cl|NEXT}}
{{Cl|NEXT}}
{{Cl|STRIG(n)|STRIG}} ON
{{Cl|DO...LOOP|DO}}
{{Cl|PRINT}} &quot;.&quot;;
{{Cl|_LIMIT}} 30
{{Cl|LOOP}} {{Cl|UNTIL}} {{Cl|INKEY$}} &lt;&gt; &quot;&quot;
{{Cl|END}}
{{Cl|SUB}} JoyButton (js {{Cl|AS}} {{Cl|LONG}})
{{Cl|PRINT}} &quot;Joystick #&quot;; js \ 256 + 1; &quot;button #&quot;; (js {{Cl|AND (boolean)|AND}} 255) + 1; &quot;pressed!&quot;
{{Cl|END SUB}} '' ''
{{CodeEnd}}
:''Explanation:'' Up to 256 controllers can be used in QB64 with many buttons to read.
''See also:''
* [[STRIG ]], [[STICK]] {{text|(functions)}}
* [[STRIG(n)]] {{text|(statement)}}
* [[_DEVICES]], [[_DEVICE$]], [[_LASTBUTTON]]
* [http://en.wikipedia.org/wiki/Analog_stick Single and Dual Stick Controllers]
{{PageNavigation}}