Tengo una duda respecto a una acción que no resulta exactamente como yo quiero.
Lo que sucede es que estoy haciendo un juego de peleas... Pero antes que cambien de página, básicamente ya tengo el 70% del proyecto, así que no piensen que soy de esas personas que piden que les hagan todo.
Bueno continuando con el tema, quiero hacer la acción "dash", donde si presionas ["adelante", "adelante"] o ["atrás", "atrás"], el jugador corre o salta hacia atrás.
Creé este código.
Código ActionScript :
//>>> VAR ad = Key.RIGHT; at = Key.LEFT; // Combinación de teclas dash_ad = [ad, ad]; dash_at = [at, at]; //>>> KEY LISTENER /* Key Listener me ayuda a crear pequeñas pausas y da mejores resultados que "Key.isDown()" */ var keyListener = new Object(); Key.addListener(keyListener); keyListener.onKeyDown = function() { TP = Key.getCode(); } keyListener.onKeyUp = function() { TP = false; } //>>> FUNCIONES onEnterFrame = function() { /* Este da el tiempo límite de tecla, si pasa más del tiempo la combinación debe reiniciarse y comenzarla de nuevo.*/ if (t < getTimer()) { dash_ad_combo = 0; dash_at_combo = 0; delete this.t; } /* Aquí toma en cuenta cada presión de tecla con "Key.getCode();" para realizar la combinación, si una tecla es incorrecta, se suspende */ // Presión de tecla para hacer la acción if (TP == (dash_ad[dash_ad_combo])) { this.t = getTimer()+500; this.dash_ad_combo++; } else if (TP == (dash_at[dash_at_combo])) { this.t = getTimer()+500; this.dash_at_combo++; } /* Por último, si la presión de teclas resulta correcta, entonces se realiza la acción */ if (dash_ad_combo >= dash_ad.length) { trace("dash_adelante"); } else if (dash_at_combo >= dash_at.length) { trace("dash_atrás"); } };
Usé la función "trace();" para no implicar más acciones y sea más rápido el código de usar.
Pero seguramente se preguntan, ¿Dónde esta el problema?, bueno, digamos que yo quiero avanzar o ir hacia atrás, mantengo presionado "derecha" para hacerlo y realiza el "dash", pero se supone que este se realiza si presiono dos veces "derecha", no si la presiono continuamente.
Entonces mi duda. ¿Cómo puedo resolver esta acción? Para que cuando haga una doble presión de tecla realice la acción, como ejemplo, el "doble clic" del ratón.
Espero me haya explicado. Saludos y Gracias.