muchas gracias Javier
saludos
sebass
----- Original Message -----
From: "Javier Arce A." <[EMAIL PROTECTED]>
To: "flashmaestro List Member" <[EMAIL PROTECTED]>
Sent: Thursday, July 04, 2002 6:24 PM
Subject: [flashmaestro] I Juegos


> Sebastian:
>
> Te mando un tutorial. Esta sencillon, pero espero que
> te sirva...
>
> Hasta Luego
>
>
>
> _________________________________________________________
> Do You Yahoo!?
> La emoci�n e intensidad del deporte en Yahoo! Deportes.
http://deportes.yahoo.com.mx


----------------------------------------------------------------------------
----


> {\rtf1\ansi\ansicpg1252\uc1
\deff0\deflang1033\deflangfe3082{\fonttbl{\f0\froman\fcharset0\fprq2{\*\pano
se 02020603050405020304}Times New Roman;}{\f16\froman\fcharset238\fprq2
Times New Roman CE;}{\f17\froman\fcharset204\fprq2 Times New Roman Cyr;}
> {\f19\froman\fcharset161\fprq2 Times New Roman
Greek;}{\f20\froman\fcharset162\fprq2 Times New Roman
Tur;}{\f21\froman\fcharset186\fprq2 Times New Roman
Baltic;}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\b
lue255;
>
\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\gre
en255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blu
e128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red12
8\green128\blue0;
>
\red128\green128\blue128;\red192\green192\blue192;}{\stylesheet{\nowidctlpar
\widctlpar\adjustright \fs20\lang3082\cgrid \snext0
Normal;}{\s1\keepn\nowidctlpar\widctlpar\adjustright \b\fs20\lang3082\cgrid
\sbasedon0 \snext0 heading 1;}{
> \s2\keepn\nowidctlpar\widctlpar\adjustright \b\fs36\lang3082\cgrid
\sbasedon0 \snext0 heading 2;}{\*\cs10 \additive Default Paragraph
Font;}{\s15\nowidctlpar\widctlpar\adjustright \b\fs20\lang3082\cgrid
\sbasedon0 \snext15 Body Text;}{\*\cs16 \additive
> \ul\cf2 \sbasedon10 Hyperlink;}}{\info{\title //Variables
Globales}{\author Francisco Arce Anguiano}{\operator Francisco Arce
Anguiano}{\creatim\yr2002\mo6\dy6\hr20\min7}{\revtim\yr2002\mo6\dy6\hr20\min
7}{\version2}{\edmins1}{\nofpages4}{\nofwords922}
> {\nofchars5260}{\*\company Familia Arce
Vieyra}{\nofcharsws6459}{\vern73}}\paperw12242\paperh15842\margl1701\margr17
01\margt1418\margb1418
\deftab708\widowctrl\ftnbj\aenddoc\hyphhotz425\formshade\viewkind1\viewscale
100\pgbrdrhead\pgbrdrfoot \fet0\sectd
> \psz1\linex0\headery709\footery709\colsx709\endnhere\sectdefaultcl
{\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang{\pntxta
.}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang{\pntxta
.}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang{\pntxta .}}
>
{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang{\pntxta )}}{\*\pnseclvl5\p
ndec\pnstart1\pnindent720\pnhang{\pntxtb
(}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb
(}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang
> {\pntxtb
(}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb
(}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb
(}{\pntxta )}}\pard\plain
\s2\keepn\nowidctlpar\widctlpar\outlinelevel1\adjustright
> \b\fs36\lang3082\cgrid {Juego de memoria con Action Scripts
> \par }\pard\plain \nowidctlpar\widctlpar\adjustright \fs20\lang3082\cgrid
{Con pocas lineas haga un juego muy divertido.
> \par
> \par }\pard\plain \s15\nowidctlpar\widctlpar\adjustright
\b\fs20\lang3082\cgrid {Es un juego muy sencillo. Consiste en pares de
cartas, barajeadas y puestas boca abajo. El jugador debe de voltear dos
cartas a la vez y encontrar los
> pares. Una vez encontradas dos cartas con el mismo valor, se retiran.
Cosas de ni\'f1os, \'bfverdad?
> \par }\pard\plain \nowidctlpar\widctlpar\adjustright \fs20\lang3082\cgrid
{
> \par
> \par Para simplificar, utilizaremos un solo MovieClip con los valores de
cada carta por frame. Esta es la manera m\'e1s sencilla de manipularlas, ya
que de lo contrario, deber\'edamos tener un MovieClip por cada carta, lo
cual resulta poco eficiente
>  y carga la memoria. El primer frame ser\'e1 la carta volteada.
> \par
> \par Asimismo, podemos tener un contador de \ldblquote clicks\rdblquote
efectuados a falta de marcador (a menor n\'famero de clicks, mejor memoria),
y un contador de pares encontrados, para identificar el fin del juego. Usted
puede poner las im\'e1
> genes que desee en las cartas. Para simplificar, nos rompimos la cabeza, y
les pusimos n\'fameros (usted puede ponerle las fotos de sus novias (os), o
las fotos del equipo de f\'fatbol que prefiera).
> \par
> \par }{\b Las funciones:
> \par }{
> \par Para hacer este jueguito, necesitamos tres partes: 1) Rutina de
inicio que baraje las cartas, 2) Rutina que detecte los clicks sobre las
cartas y 3) Rutinas que tome decisiones.
> \par
> \par Pero antes, hablemos de las variables globales. Una llevar\'e1 el
contador de las veces que hacemos click, lo cual medir\'e1 que tan buenos
somos. Entre menos clicks, uno tiene mejor memori
> a. El otro es un contador de pares para identificar cuando se termina la
jugada. Las dem\'e1s variables las explicaremos en cada rutina, y puede
jugar con ellas para variar el juego.
> \par
> \par }\pard\plain
\s1\keepn\nowidctlpar\widctlpar\outlinelevel0\adjustright
\b\fs20\lang3082\cgrid {Variables globales
> \par }\pard\plain \nowidctlpar\widctlpar\adjustright \fs20\lang3082\cgrid
{
> \par //Variables Globales
> \par clicks = 0;
> \par contadorPares = 0 ;
> \par //Constantes
> \par PARES = 18;
> \par CARTAS = PARES * 2;
> \par LON_CARTA = 60;
> \par MARGEN_IZQ = 200;
> \par MARGEN_ARR = 50;
> \par COLUMNAS = 6;
> \par
> \par }{\b Funci\'f3n de inicio:
> \par }{
> \par Esta consiste en tres partes: 1) Crear los arreglos, 2) Barajearlos,
3) Desplegar boca abajo las cartas (respecto al arreglo barajeado, por
supuesto). Todas estas funciones se pueden hacer de muchas maneras. Aqu\'ed
proponemos las siguientes:
> \par
> \par //Crea el vector con las 36 cartas
> \par var ListaOrdenada = new Array();
> \par for(var i=1;i<=PARES;i++) \{
> \par \tab ListaOrdenada.push(i,i);
> \par \}
> \par
> \par La variable PARES la manejamos en may\'fasculas para indicar que
nunca cambia y que es un par\'e1metro general. Observe que estamos
alimentando al arreglo con dos d\'edgitos. Al final del ciclo, deber\'e1
>  quedar una arreglo similar a 1,1,2,2,3,3,4,4,5,5,... etc.
> \par
> \par Para cambiarlo al azar tambi\'e9n hay muchas formas. La m\'e1s
sencilla es crear otro arreglo vac\'edo, y a medida que lo vayamos llenando,
borramos un elemento del original:
> \par
> \par //Barajea Arreglo
> \par var ListaCartas = new Array();
> \par while (ListaOrdenada.length > 0) \{
> \par \tab r = int(Math.random()*ListaOrdenada.length);
> \par \tab ListaCartas.push(ListaOrdenada[r]);
> \par \tab ListaOrdenada.splice(r,1);
> \par \}
> \par
> \par Observe que primero escogemos al azar el elemento del arreglo
original, luego \ldblquote empujamos\rdblquote  el valor de este al nuevo
arreglo, y luego borramos el nodo original.  Obtendremos una lista similar a
3,6,2,5,3,7,9,1,4,2,6,7, etc.
> \par
> \par Finalmente necesitamos desplegar las cartas en el escenario:
> \par
> \par //Crea las cartas, ordena en pantalla y les asigna numero
> \par x = 0;
> \par y = 0;
> \par for(var i=0; i<CARTAS; i++) \{
> \par \tab attachMovie("Card","Card"+i,i);
> \par \tab _root["Card"+i].numero = ListaCartas[i];
> \par \tab _root["Card"+i]._x = x * LON_CARTA + MARGEN_IZQ;
> \par \tab _root["Card"+i]._y = y * LON_CARTA + MARGEN_ARR;
> \par \tab //Aumenta por renglones
> \par \tab x++;
> \par \tab if (x > COLUMNAS - 1) \{
> \par \tab \tab x = 0;
> \par \tab \tab y++;
> \par \tab \}
> \par \}
> \par
> \par }{\b Funciones de decisiones:
> \par }{
> \par Como puede observar, necesitamos dos variables de pivote para
desplegar las cartas (x e y), y que estamos almacenando una variable en la
carta, con la cual verificaremos los pares, sin importar si las cartas tiene
como imagen a un avi\'f3
> n , a la reina Victoria o a Pen\'e9lope Cruz.
> \par
> \par Bueno, en este punto ya podemos comenzar a jugar. La idea es que
cuando hagamos click en una carta, esta carta se voltee, si le damos otra
vez click, nuevamente se voltee, si hay una segunda carta, verificar si
tiene el mismo valor, y de ser as\'ed
> , eliminar el par... uf, f\'e1cil, \'bfverdad?
> \par
> \par Aqu\'ed, la voz cantante la tienen las variables \ldblquote
primeraCarta\rdblquote , \ldblquote segundaCarta\rdblquote  y \ldblquote
clip\rdblquote . (Aunque, como usted ya sabe, hay muchas maneras de matar
las pulgas). La estructura necesaria pudr\'ed
> a quedar de la siguiente manera:
> \par
> \par Si se hizo click enla misma carta
> \par }\pard \fi708\nowidctlpar\widctlpar\adjustright {Voltea Carta
> \par }\pard \nowidctlpar\widctlpar\adjustright {SiNo
> \par }\pard \fi708\nowidctlpar\widctlpar\adjustright {Si no hay otras
cartas volteadas
> \par }\pard \fi708\li708\nowidctlpar\widctlpar\adjustright {Voltea la
primera
> \par }\pard \nowidctlpar\widctlpar\adjustright {\tab Si ya hay una carta
volteada
> \par }\pard \fi708\li708\nowidctlpar\widctlpar\adjustright {Voltea la
segunda carta
> \par }\pard \nowidctlpar\widctlpar\adjustright {\tab \tab Si La primer
carta y la segunda coinciden
> \par }\pard \fi708\li1416\nowidctlpar\widctlpar\adjustright {Remueve las
carta e inicializa variables
> \par }\pard \nowidctlpar\widctlpar\adjustright {\tab \tab Fin
> \par \tab Fin
> \par \tab
> \par Fin
> \par
> \par Una validaci\'f3n previa es necesaria par saber si hay dos cartas ya
boca arriba. Si este es el caso, abr\'eda que voltearlas antes de descubrir
una tercera.  Para esta rutina el \ldblquote truco\rdblquote  es la
funci\'f3n gotoAndStop y el n\'fa
> mero que almacenamos el el MovieClip, ya que para poner una carta boca
abajo, se va al primer recuadro del MovieClip. Para voltear boca arriba la
carta se va al n\'famero almacenado m\'e1s uno. El c\'f3digo quedar\'eda de
la siguiente manera:
> \par
> \par function clickCarta(clip) \{
> \par \tab //Aumneta contador de Clicks
> \par \tab clicks++;
> \par }\pard \fi708\nowidctlpar\widctlpar\adjustright {myClicks = clicks;
> \par }\pard \nowidctlpar\widctlpar\adjustright {
> \par \tab //Revisa si hay dos cartas volteadas
> \par \tab if (segundaCarta != 0) \{
> \par
> \par \tab \tab //Si las hay, las voltea y limpia variables
> \par \tab \tab primeraCarta.gotoAndStop(1);
> \par \tab \tab segundaCarta.gotoAndStop(1);
> \par \tab \tab primeraCarta = 0;
> \par \tab \tab segundaCarta = 0;
> \par \tab \}
> \par
> \par \tab // Verifica si la misma carta fue seleccionasa
> \par \tab if (primeraCarta == clip) \{
> \par
> \par \tab \tab //Si: voltea la carta
> \par \tab \tab primeraCarta.gotoAndStop(1);
> \par \tab \tab primeraCarta = 0;
> \par
> \par \tab //Si no hay cartas volteadas
> \par \tab \} else if (primeraCarta == 0) \{
> \par
> \par \tab \tab //Voltea la primera
> \par \tab \tab clip.gotoAndStop(clip.numero+1);
> \par \tab \tab primeraCarta = clip;
> \par
> \par \tab //Si ya hay una carta volteada
> \par \tab \} else \{
> \par
> \par \tab \tab //Voltea la segunda carta
> \par \tab \tab clip.gotoAndStop(clip.numero+1);
> \par \tab \tab segundaCarta = clip;
> \par
> \par \tab \tab // Verifica si las dos cartas coinciden
> \par \tab \tab if (primeraCarta.numero == segundaCarta.numero) \{
> \par
> \par \tab \tab \tab //Si coinciden, remueve las carta
> \par }\pard \fi708\li1416\nowidctlpar\widctlpar\adjustright {//e
inicializa variables
> \par }\pard \nowidctlpar\widctlpar\adjustright {\tab \tab \tab
contadorPares++;
> \par \tab \tab \tab myPares = contadorPares;
> \par \tab \tab \tab primeraCarta.removeMovieClip();
> \par \tab \tab \tab segundaCarta.removeMovieClip();
> \par \tab \tab \tab primeraCarta = 0;
> \par \tab \tab \tab segundaCarta = 0;
> \par \tab \tab \}
> \par \tab \}
> \par \tab
> \par \}
> \par
> \par }{\b Lo que sigue:
> \par }{
> \par A este juego le puede poner un reloj, para que contabilice el tiempo
que se tarda, o asignarle un tiempo para encontrar las cartas, puede jugar
entre varias personas, y generar un contador por participante; tambi\'e9
> n se puede jugar por niveles, con cada vez m\'e1s cartas, etc. Recuerde
que el l\'edmite es su imaginaci\'f3n.
> \par
> \par Flasheros del mundo, \'a1un\'edos!
> \par }\pard \qc\nowidctlpar\widctlpar\adjustright {
> \par }\pard \nowidctlpar\widctlpar\adjustright {Francisco Javier Arce
Anguiano
> \par Mail: }{\field{\*\fldinst { HYPERLINK
mailto:[EMAIL PROTECTED] }{{\*\datafield
>
00d0c9ea79f9bace118c8200aa004ba90b02000000170000001500000066006a005f00610072
006300650040007900610068006f006f002e0063006f006d002e006d0078000000e0c9ea79f9
bace118c8200aa004ba90b380000006d00610069006c0074006f003a0066006a005f00610072
00630065004000790061006800
> 6f006f002e0063006f006d002e006d0078000000}}}{\fldrslt {\cs16\ul\cf2
[EMAIL PROTECTED]}}}{
> \par
> \par }}


Responder a