Actionscript 2.0: Base para juego con casillas de arrastre.
Este código muestra como hacer un juego con casillas de arrastre, útil para juegos de formación y similares en los que el usuario tiene que colocar determinadas casillas en un lugar específico.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
//////////////////////////////////////////////////////////////////////////////////// //VARIABLES //Esta variable almacena el resultado del juego. var correcto:Boolean = false; //Almacena todos los clips de arrastre var clips:Array = [Arrastre1_mc,Arrastre2_mc,Arrastre3_mc,Arrastre4_mc]; //Almacena los nombres de los clips de destino para los clips de arrastre var destinos:Array = [Destino1_mc,Destino2_mc,Destino3_mc,Destino4_mc]; //////////////////////////////////////////////////////////////////////////////////// //FUNCIONES //Función que se ejecuta al inicio y programa la escena function Empezar(){ GuardarDatos(); ProgramarArrastres(); Corregir(); } //Almacena los datos iniciales de los clips de arrastre como variables dentro de cada clip. //Estos datos se utilizan despues para ver si se ha dejado sobre el destino, o para colocarlos de nuevo //en su posición inicial function GuardarDatos(){ for (var i = 0;i < clips.length; i++){ clips[i].xIni = clips[i]._x; clips[i].yIni = clips[i]._y; clips[i].destino = destinos[i]; clips[i].prof = clips[i].getDepth(); } } //Programa los clips de arrastre, añadiendo a cada uno los eventos onPress y onRelease function ProgramarArrastres(){ for(var i = 0; i < clips.length; i++){ var clip = clips[i]; clip.onPress = function(){ startDrag(this,false); this.swapDepths(getNextHighestDepth()); } clip.onRelease = function(){ Soltar(this); this.swapDepths(this.prof); } } } //Esta función se ejecuta cuando se reproduce el evento onPress de alguno de los clips de //arrastre. Comprueba si el clip de arrastre está sobre su clip de destino, y si es así, lo //coloca en la misma posición que este. Si no, lo devuelve a la posición inicial que se ha //almacenado al principio. function Soltar(clip){ clip.stopDrag(); if(clip.hitTest(clip.destino)){ clip._x = clip.destino._x; clip._y = clip.destino._y; }else{ clip._x = clip.xIni; clip._y = clip.yIni; } Corregir(); } //Corrige el juego. Recorre todos los clips de arrastre y ve si están colocados //o no. Modifica los valores de los campos de texto Resuelto_txt y Aciertos_txt //para mostrar los datos del juego. function Corregir(){ var aciertos = 0; for(var i = 0; i < clips.length; i++){ if(clips[i].hitTest(destinos[i])){ aciertos++; } } correcto = (aciertos == clips.length)?true:false; Resuelto_txt.text = correcto; Aciertos_txt.text = aciertos; } //Empezamos Empezar(); stop(); |