Difference between revisions of "Controller"

From AGI Wiki
Jump to navigationJump to search
(Created page with "__NOTOC__ {{AGIWiki}} ''This article refers controller-command. For information about Controllers as part of an AGI game, see Controller.'' The '''controller...")
 
Line 21: Line 21:
 
: 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.
 
: 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 ==
+
== Example ==<div class="CodeBlockHeader">Code:</div>
<syntax type="C++">
+
<div class="CodeBlockStyle">
 +
<syntaxhighlight lang="agi">
 
//build a simple menu structure
 
//build a simple menu structure
 
set.menu("Info");
 
set.menu("Info");
Line 55: Line 56:
 
   restore.game()
 
   restore.game()
 
}
 
}
</syntax>
+
</syntaxhighlight></div>
  
 
== Technical Information ==
 
== Technical Information ==

Revision as of 15:47, 31 July 2013


Template:AGIWiki

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 ==

Code:

<syntaxhighlight lang="agi"> //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

Required interpreter version Available in all AGI versions
Bytecode value 12 (0x0C hex)

See Also

Sources