// ALGUIEN ME PUEDE EXPLICAR LOS 2 RETURN QUE HAY EN EL CODIGO, NO ACABO DE
// ENTENDER QUE FUNCION CUMPLEN. SE QUE EL RETURN AL ESTAR SOLO DEVUELVE
// UNDEFINED, PERO EN QUE SITIO SE RECOGE ESTE VALOR O QUE HACE EXACTAMENTE AQUI?
Código :
var ID;
var cantidadAlfa = 50;
var contador = 0;
var primeraPieza;
var pulsaciones = 0;
arrayPiezas = new Array();
arrayMovimientos = new Array();
//Crea un nuevo objeto Sound para un clip de película especificado
var sonido0 = new Sound(this);
sonido0.attachSound("1.wav");
var sonido1 = new Sound(this);
sonido1.attachSound("2.wav");
var sonido2 = new Sound(this);
sonido2.attachSound("3.wav");
var sonido3 = new Sound(this);
sonido3.attachSound("4.wav");
//Añadir los clips al array arrayPiezas
for (var i = 1; i<5; i++) {
arrayPiezas.push(this["P"+i]);
this["P"+i].valor = i-1;
}
textoNivel_txt.text = 0;
//Forma de actuar de los botones
function eventosPiezas() {
for (var i = 0; i<arrayPiezas.length; i++) {
//Al presionar baja el alfa
arrayPiezas[i].onPress = function() {
this._alpha = cantidadAlfa;
};
//En rollOut recupera alfa
arrayPiezas[i].onRollOut = function() {
this._alpha = 100;
};
arrayPiezas[i].onRelease = function() {
trace("pulsacionesA="+pulsaciones);
trace("valor="+this.valor);
//Recupera alfa
this._alpha = 100;
//Play sonido
_root["sonido"+this.valor].start(0);
if (arrayMovimientos[pulsaciones] != this.valor) {
fallo();
return;
}
//Añadir 1 a la variable pulsaciones
pulsaciones++;
trace("pulsacionesB="+pulsaciones);
if (pulsaciones == arrayMovimientos.length) {
textoNivel_txt.text = pulsaciones;
siguienteNivel();
}
};
}
}
function fallo() {
textoPrincipal_txt.text = "Game Over";
desactivarPiezas();
//Set start button transparency back to 100%
empezar_btn._alpha = 100;
//Delete array of moves
arrayMovimientos = new Array();
//Recreate the start button
empezar_btn.onRelease = function() {
empezarJuego();
};
}
function desactivarPiezas() {
for (var i = 0; i<arrayPiezas.length; i++) {
delete arrayPiezas[i].onPress;
delete arrayPiezas[i].onRollOut;
delete arrayPiezas[i].onRelease;
}
}
function encenderLuz(numero) {
clearInterval(ID);
contador--;
//Si no hay mas piezas para iluminar esperar por la secuencia del usuario
if (contador == 0) {
turnoJugador();
return;
}
if (contador == 1) {
//Si la ultima pieza ha sido iluminada elegir nuevo numero aleatorio
numero = Math.floor(Math.random()*4);
} else {
//Elegir la siguiente pieza a iluminar
numero = arrayMovimientos[arrayMovimientos.length+1-contador];
}
//Iluminar la pieza
iluminar(numero);
}
function turnoJugador() {
pulsaciones = 0;
//Lets user interact with pieces
eventosPiezas();
}
function iluminar(numero) {
//disminucionAlfas the numero piece
bajarAlfa(numero);
//Light up the piece for half of a second
ID = setInterval(pausa, 500, numero);
}
function pausa(numero) {
clearInterval(ID);
unDim(numero);
ID = setInterval(encenderLuz, 50, numero);
}
function bajarAlfa(numero) {
if (contador == 1) {
arrayMovimientos.push(numero);
trace(newline);
trace("arrayMovimientos="+arrayMovimientos);
}
//Plays the sound when iluminaring a piece up
_root["sonido"+numero].start(0);
arrayPiezas[numero]._alpha = 50;
}
function unDim(numero) {
arrayPiezas[numero]._alpha = 100;
}
function empezarJuego() {
//Picks first piece
primeraPieza = Math.floor(Math.random()*4);
textoPrincipal_txt.text = "";
for (var i = 0; i<arrayPiezas.length; i++) {
//Sets all the pieces to 100% transparency
arrayPiezas[i]._alpha = 100;
}
//Sets the start button to invisible
empezar_btn._alpha = 0;
//Deletes the start button onRelease function
delete empezar_btn.onRelease;
eventosPiezas();
contador = 1;
//Lights first piece
iluminar(primeraPieza);
}
function siguienteNivel() {
//Disables interacting with pieces
desactivarPiezas();
for (var i = 0; i<arrayPiezas.length; i++) {
//Sets all pieces to 100% transparency
arrayPiezas[i]._alpha = 100;
}
contador = arrayMovimientos.length+1;
var reloj = getTimer();
this.onEnterFrame = function() {
//Wait 1 second before starting sequence display after input
if (reloj<getTimer()-1000) {
delete this.onEnterFrame;
iluminar(primeraPieza);
}
};
}
empezar_btn.onRelease = function() {
empezarJuego();
};
