import ElementoBingo; import bravo.Contador; import sistema.ArrayRandomizer; import sistema.ExtendedMultiTimer; import ExtendedSound; class ControladorBingo extends MovieClip { private var numElementosAlto: Number = new Number(2); private var numElementosAncho: Number = new Number(2); private var alturaCarton, anchuraCarton:Number; private var alturaElementoCarton, anchuraElementoCarton:Number; private var elementoActivo:Number; private var elementosSacados:Number; private var aciertos:Number ; public var contador:Contador; private var numElementos:Number; private var elementos:Array; //Array de Array de tres cosas private var elementosBingo:Array; //Array de elementosBingo private var texto:TextField; private var formatoTexto:TextFormat; private var elementosDescolocados:Array; private var timer:ExtendedMultiTimer; private var indice:Number ; private var ronda:Number ; private var sonido:ExtendedSound; private var sonidoerror:ExtendedSound; private var finalizatiempo:Boolean ; private var cartonCompletado:Boolean ; private var numeroCarton:Number=0 ; private var activaElemento:Boolean ; private var vuelta:Number; public var tiempo:Number=8; //Se define la función para cuando acabe el juego public var onGameEnd:Function; public function ControladorBingo() { //Hay que crear los elementos del cartón //Nombre del elemento, "elemento_" + num _root.contador.setMaxAciertos(numElementosAlto*numElementosAncho); this.elementos = new Array(); this.numElementos = 0; // this.createTextField("texto",this.getDepth(),-50,-50,50,50); timer = new ExtendedMultiTimer(this); sonido=new ExtendedSound(); sonidoerror=new ExtendedSound(); sonidoerror.carton=this; sonido.carton=this; elementosBingo = Array(); formatoTexto = new TextFormat(); formatoTexto.bold = true; formatoTexto.align = "center"; formatoTexto.size = 16; formatoTexto.color = 0xCC0066; formatoTexto.font = "Boink LET"; } public function setContador(contador:Contador) { this.contador = contador; } public function setDimensiones(numElsAltura:Number,numElsAnchura:Number,altura:Number,anchura:Number) { this.numElementosAlto = numElsAltura; this.numElementosAncho = numElsAnchura; this.alturaCarton = altura; this.anchuraCarton = anchura; this.alturaElementoCarton = this.alturaCarton/this.numElementosAlto; this.anchuraElementoCarton = this.anchuraCarton/this.numElementosAncho; contador.setMaxAciertos(numElementosAlto*numElementosAncho); } public function setElemento(num:Number,imagen:MovieClip,sonido:String,palabra:String) { var a; if(num != -1) { //Ya están creados todos los elementos a = elementosBingo[num]; } else { // crea los elementos del bingo y los mete en el array num = this.numElementos; a = attachMovie("elementocarton","elemento_"+num,100+(2*num)); elementosBingo[num] = Array(a,0); this.numElementos++; } a.controlador = this; a.setDatos(palabra,sonido,imagen); a.txt_palabra.setTextFormat(formatoTexto); } public function start( ) { var i,k,j:Number; contador.init(); ronda =0; finalizatiempo=false; elementosSacados = 0; aciertos=0; elementosDescolocados = Array(); cartonCompletado=false; activaElemento=true; vuelta=0; //Tengo que colocar los elementos del cartón for(i=0;i= numElementos) { elementosSacados=0; } elementoActivo = elementosDescolocados[elementosSacados]; } //trace (elementosBingo[elementoActivo][0].getPalabra()); //texto.text = elementosBingo[elementoActivo].getPalabra(); elementosBingo[elementoActivo][0].playSound(); elementosBingo[elementoActivo][0].playClip(); //Vuelvo a llamar a esta misma función después del dos/tres segundos timer.init(tiempo);//en segundos timer.onTime = function() { this.objeto.finalizatiempo=true; this.objeto.pasaTiempo(); } elementosSacados++; // entra cuando se recorre una vez el carton if ((elementosSacados>=numElementos) ) { elementosSacados=0; ronda++; } } else { //emite sonidos segun completa carton o no if (ronda > 1 ) { // vuelvo a desmarcar el array de elementos acertados for (i=0;i