Juego en flash

Hola. Tengo un problema con el juego del "ahorcado" en flash. Lo descargué de internet pero tiene errores. Necesito ayuda para corregirlos.
Los errores son: Al presionar una tecla correcta, aparece bien, pero es presionan la misma tecla varias veces, aparece el mensaje de que la palabra es correcta cuando no es así. Y si presiono enter se pasa al primer frame. El archivo del juego está en http://www.programacion.com/codigo/84/
Gracias.

1 respuesta

Respuesta
1
Espero que mis respuestas te satisfagan. Bueno, lo de presionar el enter ocurre solo cuando estas en el flash y das Probar Película (Ctrl+Enter). Lo que pasa es que así, cuando das Enter pasas al siguiente frame. Cuando exportas la película, el .swf ya no le ocurre eso.
Lo otro, la solución que le encontré fue crear un array que guarde las teclas que vayas presionando, entonces lo primero que haces es verificar si la tecla ya la presionaste, si no la he tecleado procedo como hacia antes. Si la tecla ya la presionaste una vez no ocurre nada.
De esta forma, puedes incluso poner visualmente las teclas que has presionado.
Aquí te mando como quedaría el código modificado.
/***************************************************************************
Al cargar inicializa variables
*****************************************************************************/
onClipEvent (load) {
malas = 0;
buenas = 0;
arrayLetraTecleadas = new Array();
}
/***************************************************************************
Al cargar inicializa variables
*****************************************************************************/
onClipEvent (keyDown) {
var numLetra = Key.getCode();
//ASCII de la tecla
//verifico si la tecla ya ha sido tecleada
var len = arrayLetraTecleadas.length;
var enc = false;
for (var i = 0; i<len && !enc; i++) {
enc = arrayLetraTecleadas == numLetra;
}
//y solo si no encontre la tecla, es decir que no la he tecleado, puedo proceder
//y no sea la tecla Enter
if (!enc && numLetra != Key.ENTER) {
//lo primero que hago es guardar la tecla como tecleada
arrayLetraTecleadas.push(numLetra);
var numeroLetra = 0;
//Calcula frame
var acierto = false;
//Bandera
var clip = "";
//Vacía el MC
for (var i = 0; i<_root.longitud; i++) {
//Barre palabra
if (_root.palabra.charCodeAt(i) == numLetra) {
//Compara valores
acierto = true;
//Bandera en verdadero
buenas++;
//Incrementa contador
numeroLetra = numLetra-_root.RESTA_ASCII;
//Calcula frame
clip = _root["letra"+(i+1)];
//Pasa valor a la variable
clip.gotoAndStop(numeroLetra);
//Despliega acierto
}
}
} else {
acierto = true;
}
if (acierto == false) {
//Verifica la bandera
malas++;
//Incrementa fallas
_root.horca.gotoAndStop(malas+1);
//Despliega ahorcado
if (malas == 4) {
//Verifica fallas
_root.gotoAndPlay("PERDIO");
//Puff :(
}
}
if (buenas == _root.longitud) {
//Verifica si ganó
_root.gotoAndPlay("GANO");
//Ohhh :)
}
}
/****************************************************************************/

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas