KeyCombo

From Unify Community Wiki
(Difference between revisions)
Jump to: navigation, search
(Removing all content from page)
Line 1: Line 1:
This class makes it easy to detect multi-key combos in, for example, fighting games. Created by [[User:StarManta|StarManta]].
 
<javascript>
 
class KeyCombo {
 
var buttons : String[];
 
var currentIndex : int=0; //moves along the array as buttons are pressed
 
var allowedTimeBetweenButtons : float = 0.3; //tweak as needed
 
private var timeLastButtonPressed : float;
 
  
function KeyCombo(b : String[]) {
 
buttons = b;
 
}
 
 
//usage: call this once a frame. when the combo has been completed, it will return true
 
function Check() : boolean {
 
if (Time.time > timeLastButtonPressed + allowedTimeBetweenButtons) currentIndex=0;
 
if (currentIndex < buttons.length) {
 
if ((buttons[currentIndex] == "down" && Input.GetAxisRaw("Vertical") == -1) ||
 
(buttons[currentIndex] == "up" && Input.GetAxisRaw("Vertical") == 1) ||
 
(buttons[currentIndex] == "left" && Input.GetAxisRaw("Vertical") == -1) ||
 
(buttons[currentIndex] == "right" && Input.GetAxisRaw("Horizontal") == 1) ||
 
(buttons[currentIndex] != "down" &&  buttons[currentIndex] != "up" &&  buttons[currentIndex] != "left" &&  buttons[currentIndex] != "right" && Input.GetButtonDown(buttons[currentIndex]) ) {
 
timeLastButtonPressed = Time.time;
 
currentIndex++;
 
}
 
 
if (currentIndex >= buttons.length) {
 
currentIndex = 0;
 
return true;
 
}
 
else return false;
 
}
 
var falconPunch : KeyCombo = KeyCombo(["down","right","punch"]);
 
var falconKick : KeyCombo = KeyCombo(["down", "right", "kick"]);
 
 
function Update() {
 
if (falconPunch.Check()) {
 
// do the falcon punch
 
}
 
if (falconKick.Check()) {
 
// do the falcon kick
 
}
 
}</javascript>
 

Revision as of 18:46, 19 October 2009

Personal tools
Namespaces

Variants
Actions
Navigation
Extras
Toolbox