Difference between revisions of "AGIWiki/controller"
< AGIWiki
Jump to navigation
Jump to search
m (→Example) |
m (Text replacement - "</source>" to "</syntaxhighlight>") Tags: Mobile edit Mobile web edit |
||
(4 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
__NOTOC__ | __NOTOC__ | ||
{{AGIWiki}} | {{AGIWiki}} | ||
{{AGIWiki/Test commands}} | |||
''This article refers controller-command. For information about Controllers as part of an AGI game, see [[AGIWiki/Controller|Controller]].'' | ''This article refers controller-command. For information about Controllers as part of an AGI game, see [[AGIWiki/Controller|Controller]].'' | ||
Line 22: | Line 21: | ||
== Example == | == Example == | ||
< | <syntaxhighlight lang="cpp"> | ||
//build a simple menu structure | |||
set.menu("Info"); | |||
set.menu.item("About ", c0); | |||
set.menu.item("Help ", c1); | |||
set.menu("File"); | |||
set.menu.item("Save Game <F5>", c2); | |||
set.menu.item("Restore Game <F7>", c3); | |||
set.menu.item("-------------------", c20); | |||
set.menu.item("Restart Game <F9>", c4); | |||
set.menu.item("-------------------", c20); | |||
set.menu.item("Quit <Alt Z>", c5); | |||
//disable the separators | |||
disable.item(c20); | |||
//submit menu to agi | |||
submit.menu() | |||
//create keyboard shortcuts | |||
set.key(0, 63, c2); // 'F5' | |||
set.key(0, 65, c3); // 'F7' | |||
set.key(0, 67, c4); // 'F9' | |||
set.key(26, 0, c5); // 'Alt-Z' | |||
//test for menu or keyboard selections | |||
if (controller(c2) { | |||
//save game | |||
save.game(); | |||
} | |||
if (controller(c3) { | |||
//restore game | |||
restore.game() | |||
} | |||
</syntaxhighlight> | |||
</ | |||
== Technical Information == | == Technical Information == |
Latest revision as of 15:10, 25 October 2018
Test commands |
This article refers controller-command. For information about Controllers as part of an AGI game, see Controller.
The controller command returns TRUE if a menu item or key assigned to the controller has been selected or pressed during the current cycle.
Syntax
- controller(ctl cA)
Remarks
- Test commands are only valid in an if statement.
- This statement can be combined with the NOT operator (!) to test for a controller NOT being selected.
- The interpreter clears all controllers at the beginning of each cycle.
- If more than one menu or keyboard entry is assigned to the controller, it does not matter which one is selected/pressed. All of them will cause the controller command to return TRUE.
Example
//build a simple menu structure
set.menu("Info");
set.menu.item("About ", c0);
set.menu.item("Help ", c1);
set.menu("File");
set.menu.item("Save Game <F5>", c2);
set.menu.item("Restore Game <F7>", c3);
set.menu.item("-------------------", c20);
set.menu.item("Restart Game <F9>", c4);
set.menu.item("-------------------", c20);
set.menu.item("Quit <Alt Z>", c5);
//disable the separators
disable.item(c20);
//submit menu to agi
submit.menu()
//create keyboard shortcuts
set.key(0, 63, c2); // 'F5'
set.key(0, 65, c3); // 'F7'
set.key(0, 67, c4); // 'F9'
set.key(26, 0, c5); // 'Alt-Z'
//test for menu or keyboard selections
if (controller(c2) {
//save game
save.game();
}
if (controller(c3) {
//restore game
restore.game()
}
Technical Information
Required interpreter version | Available in all AGI versions |
Bytecode value | 12 (0x0C hex) |
See Also
Sources
- WinAGI help file