Actionscript 2.0: Base para juego con casillas de arrastre.

Actionscript 2.0: Base para juego con casillas de arrastre.

Etiquetas: startDrag swapDepths hitTest

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

Descargar archivos

Comentarios
    • Autor
    • carlos
    felicitaciones por este tutorial creame que me sirvio de mucho para una multimedia que tenia que hacer
    • Autor
    • Mario Pando
    Impecable tu codigo, me ahorro mucho trabajo, muy agradecido
    • Autor
    • Ana
    hola!!! Me podrían ayudar, es que voy hacer un mini juego de vestir a personajes. Es un proyecto de la escuela.
    • Autor
    • Ronald Martinez Torres
    La verdad me servio de mucho ya que me encuentro realizadndo un software educativo llamado LECCMAR que esta dirigido para incrementar la comprensión lectora en niñas del 2do grado de Educación primaria en Cañete Perú Asi que muchas gracias espero que siga habiendo codigo si para poder mejorar mi software nos vemos
    • Autor
    • Jessica
    muy buen tutorial pero creo que deberian ser un poco mas específicos... Gracias
    • Autor
    • Carlos Farias
    Hola, esta genial el tutorial y facilicimo, lo unico que me gustaria saber, es como puedo hacer para que al soltar dentro del movieclip destino, el arrastrado quede centrado en éste, es posible? Saludos y gracias.
    • Autor
    • erik
    hola tu codigo y explicacion son claros y concretos tengo un proyecto con actividades para niños y me preguntaba si mepordrias asesorar o recomendar algun tutorial de action script para empezar
    • Autor
    • Enrique
    muy buen script!!! muy util, gracias! estuve 2 dias intentando hacer algo asi!!
    • Autor
    • oscar
    Y si quisiera que al colocar las piezas en su lugar salga un mensaje de felicitaciones que tendria q hacer, que parte de el codigo tendria q modificar o agregar para q salga el mensaje.
    • Autor
    • oscar
    Y si quisiera que al colocar las piezas en su lugar salga un mensaje de felicitaciones que tendria q hacer, que parte de el codigo tendria q modificar o agregar para q salga el mensaje.
    • Autor
    • Yumi
    Esta GENIAL, voy a ver si me sale =P
    • Autor
    • Yumi
    Si me salió =P
    • Autor
    • Yumi
    Hola está muy padre tu código, pero quisiera hacer que mas colores (digamos que tengo muchos tono de amarillo) entren en el en uno de los destinos, como le puedo hacer me ayudas por fis, pos fis, por fis
    • Autor
    • Yumi
    Hola, esta genial el tutorial y facilicimo,=P lo unico que me gustaria saber, es como puedo hacer para que al soltar dentro del movieclip destino, el arrastrado quede centrado en éste, es posible?
    • Autor
    • Yumi
    Ya Pude =P
    • Autor
    • Simn
    Hola que tal, el tutorial me pareció muy bueno, y muy claro. Quería preguntar, como hago para hacer que aparezca algo, (algún texto o algún movie clip) cuando se completa el juego, es decir, me gustaría hacer un if, en relación a resuelto = true, pero no se como armarlo, me podría alguien ayudar al respecto?? Desde ya muchas gracias. Pd. Muy buena toda la información que hay aqui.
    • Autor
    • Roberto
    Muy bueno el código,gracias por compartirlo, pues yo ando aferrado queriendo pasarlo a AS3.0, y nadamas no me queda, no puedo relacionar los objetos del array clips con los del array destinos, pero muy buena base, seguiré intentando, espero conseguirlo.
    • Autor
    • arbey
    muy bueno amigo, gracias lo necesitaba.
    • Autor
    • ccv
    muchas gracias, me ha sido de gran ayuda. Como podria añadir algun efecto cada vez que "acierte", alguna animación, gracias
    • Autor
    • lokoriu
    Una consulta, si yo colo el amarillo sobre el azul, el amarillo vuelve a su lugar inicial. y lo que quisiera es que no importa si te equivocas , sino a través del resultado si es true sale una pantalla que diga "felicitaciones" y si es false sale intentalo de nuevo, pero no llego a decodificarlo para que sea asi, alguien me puede ayudar muchisimas gracias. mi mail es llianpaolo@yahoo.com
    • Autor
    • Hernan
    No puedo abrir el fuente en Flash Mx Ayuda
Dejar un comentario
Tu nombre (obligatorio):

E-mail (obligatorio, no se mostrará):

Web:

Comentario: