Comunidad de diseño web y desarrollo en internet online

Crear juego memory

Citar            
MensajeEscrito el 04 Abr 2006 07:48 am
Buenas.
Soy novato en ActionScript y en Flash y quisiera crear un juego de memory en el que una de las cartas a levantar sea una imagen y su homologa la palabra escrita que defina esa imagen.
Alguien me puede hechar una mano?

Graaaaaaaacias!

Por danielsaura

0 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 04 Abr 2006 03:54 pm
puedes buscar en flashkit, encontraras algunos ejemplos, pero debes tener en cuenta la version en que estan hechos, algunos son de flash5 inclusive... suerte ;)

Por Finvara

807 de clabLevel



 

EL reino de los duendes...

firefox
Citar            
MensajeEscrito el 04 Abr 2006 04:57 pm
He mirado en tu página y ya veo en qué contexto quieres hacerlo.
Como dice finvara encontraras bastante documentación buscando por memory game flash
De todos modos. Te esbozo el proyecto simple:

Un solo MC con todos los dibujos , la 1 dibujo, la 2 su palabra , la 3 dibujo la 4 su palabra........ y un ultimo frame con el dibujo del envés de la carta


duplicar el mc tantas veces como cartas y asignarlo a un array de MC´s mc[0], mc[1] etc.
mandar con gotoAndStop(n) a cada MC.
colocarlos el filas columnas en el escenario.

funciones:
iniciar : colocar las variables iniciales y datos
mezclar : baraja aleatoriamente el array de indices (nº de frame)
volver : mandar cualquier carta mc[n] a su frame final y si está en el frame final a su frame n
detector de evento mc.onPress : comprueba el numero de cartas volteadas,si hay 0 voltear , si hay 1 voltear y a comprobarPareja
comprobarPareja : comprueba que las volteadas sean un numero impar y el siguiente con la propiedad currentFrame y modulo % si no lo son voltear ambas.

y basicamente se acabó.
Se pueden añadir muchas pijadinas pero para lo que tu pretendes en tu Web palabras-dibujos es suficiente. Todo lo mas una función de exito y una animación al volteo.
Un ejemplito mio antiguo al que le falta muy poquito para lo que deseas.
Si te atascas postea.


Código :

 iniciar();// llamaremos a esta función para generar un juego nuevo
             // desde un boton
   
// Tenemos  que colocar una instancia del movieclip en el
// escenario llamada Baraja  que contenga NumFil * NumCol +1 frames de
// las Tamaño cartas y el envés

function iniciar(){
   Baraja._visible=false;
          // oculta la instancia original
   Baraja._xscale= 55;
         //ajustan si es necesrio la escala para que entre en el escenario
        // si no necesario borrar
   Baraja._yscale=55;
   NumFil = 4;
   NumCol = 10;
   Tamaño = NumFil * NumCol;   
    xBase  = Baraja._x;
          // coordenadas del origen de las cartas 
   yBase  = Baraja._y;                
         // fila 0 y columna 0 
   xEsp = Baraja._width * 1.07;
          // crea distancia entre cartas de un 7% del ancho 
   yEsp = Baraja._height * 1.07;
           // crea distancia entre cartas de un 7% del alto
   ultima = NumCol* NumFil +1;// el frame del enves de carta 
}
   /* ahora efectuamos las llamadas a las funciones de  
   crear y mezclar las cartas asi como a aquellos efectos que
   queramos y a la lógica del juego que también se controlará
   desde aquí. */
   
   crear();
   mezclar();
   
 

function crear(){
/*  duplicamos la instancia de Baraja n veces colocando 
   en filas y columnas .  El sitio donde coloquemos
   al inicio la instancia del MC Baraja será la posición
   de la primera carta.  */
    bar = [];
// dimensión donde guardar el "sitio" donde está cada carta
   pos = [];
// dimensión donde guardar la "carta" que está en cada sitio.
   for (var i=1; i<=Tamaño; i++) {
      bar[i] = i;
      pos[i] = i;
       Baraja.duplicateMovieClip("carta"+i, i);
// cada instancia a recibido el nombre: "carta1", "carta2"
// hasta "cartai" según el valor de i  
      eval("carta"+i).gotoAndStop(i);
        // presenta la carta frame i
      colocar(i,bar[i]);
        //coloca en lugar inicial
   }
}
   
function colocar(m,i){
    pos[i]=m;
   bar[m]=i;
   var car=eval("carta"+m)
//coloca la carta "carta m" en el lugar i (fila*10+columna)
    car._x = xBase + xEsp * ((i-1) % NumCol);
     car._y = yBase + yEsp * Math.floor((i-1)/NumCol);
}

function volver(m){
//volver(34);Ejemplo:
// vuelve la carta 34 (frame 34) si la queremos volver 
// a taparla  hacemos la misma llamada: volver (34);
//Si ponemos volver(pos[34]), la carta que se dará la vuelta
//será la colocada en la posicion 34 en lugar de la carta 34 
// se pasa un número de la carta(m) no el nombre
//  Si está vista se invierte y si está tapada se ve
   var car= eval("carta"+m);
   car._currentframe==ultima ? car.gotoAndStop(m)
                         : car.gotoAndStop(ultima)
}

function mezclar(){
   for (var i=Tamaño; i>0; i--){
      alea=1+ Math.floor(i*Math.random());
      var temp=bar[i];
      bar[i]= bar[alea];
      bar[alea]= temp;
// ha fabricado un array bar[] de orden aleatorio
      colocar(i,bar[i]);
   }
}  

Por Teseo

SWAT Team

1780 de clabLevel

14 tutoriales

Genero:Masculino   SWAT

msie
Citar            
MensajeEscrito el 05 Ene 2012 06:03 am
Estoy haciendo un trabajo paresido, estoy creando un Mc con las cartas en 3D, servira el codigo para este, o tengo que cambiar algo..... :shock: :shock:

Por PatriMorales

0 de clabLevel



Genero:Femenino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.