KeyCombo

From Unify Community Wiki
Revision as of 11:01, 14 March 2010 by Mike (Talk | contribs)

Jump to: navigation, search

This class makes it easy to detect multi-key combos in, for example, fighting games. Created by StarManta.

Javascript: KeyCombo.js

<javascript>class KeyCombo { var buttons : String[]; private var currentIndex : int=0; //moves along the array as buttons are pressed private 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; } } }</javascript>


Javascript Implementation (No filename requirement)

<javascript>private var falconPunch : KeyCombo = KeyCombo(["down","right","right"]); private var falconKick : KeyCombo = KeyCombo(["down", "right", "Fire1"]);

function Update() { if (falconPunch.Check()) { // do the falcon punch Debug.Log("PUNCH"); } if (falconKick.Check()) { // do the falcon kick Debug.Log("KICK"); } }</javascript>

Personal tools
Namespaces

Variants
Actions
Navigation
Extras
Toolbox