ActionScript 3.0 para principiantes: la lección # 2

Miércoles, 3 de septiembre de 2008

Como se prometió aquí es la segunda lección de ActionScript 3.0! Hoy comenzamos el análisis de un simple proyecto que juega el juego de Tic Tac Toe o Tic Tac Toe. He intentado incluir en este ejemplo, algunas características de ActionScript 3.0, tratando de dejar espacio para la comprensión, no de estilo. De ello se deduce que si tuviera que escribir el "juego" realmente, probablemente habría estructurado de manera muy diferente, pero en este caso he intentado mediar entre un clásico de programación compacto y con un apretado más comprensibles para los principiantes. Hice una sola clase de documento, un procedimiento no necesario pero útil para mantener en línea con la lección anterior.

Tic Tac Toe

Cargando Flash Player ...

Fuentes

Además de las ActionScript (archivo. As) la clase de documento, que comenzará a analizar en detalle aquí, el proyecto está equipado con una clásica película Flash (. FLA), que proporciona el interfaz del juego. Todos los archivos necesarios para seguir el comentario del código están disponibles aquí.

Esquema del juego

En esta versión del juego, no he entrado en el equipo como un oponente, las actividades que puede desempeñar sus lectores si lo desea. El juego entonces se alternan dos jugadores, al igual que si se juegan en un tablero o una hoja de papel. El plan tiene sentido que seguimos es el siguiente:

Esquema de Tic Tac Toe

Visión Global

Antes de iniciar el análisis real del código está bien ver el esbozo de una clase genérica, compuesta por el class y en su interior:

Esquema de Tic Tac Toe

Fabricante clase documento

Como se prevé que la última vez, cuando leghiamo un documento de Flash - una película - una clase de papel, siendo este último un objeto real para crear una instancia, el sistema pondrá en marcha el fabricante.

Actionscript:
  1. / **
  2. * Fabricante de la clase
  3. * /
  4. TicTacToe ( ) : void { TicTacToe función pública (): void (
  5. / / Establece el modo de escala de etapa y etapa se suman
  6. = StageScaleMode. NO_SCALE etapa. scaleMode = StageScaleMode. NO_SCALE
  7. = StageAlign. TOP_LEFT ; etapa. align = StageAlign. TOP_LEFT;
  8. , init ) ; addEventListener (Event. ADDED_TO_STAGE, init);
  9. )

El fabricante en nuestro caso, establece el objeto stage el contenedor dentro de un navegador y añade la llamada a la función / método init() nuestra clase documento se añade a la stage se mostrará! Este es un procedimiento estándar que suelen adoptar. En algunos casos es totalmente innecesario, pero si el uso de los componentes, a saber, los objetos visuales presentes en el Flash (como texto, TreeView, etc ...), estos no estarán disponibles (como punteros) hasta l 'caso ADDED_TO_STAGE no ha sido puesto en libertad! Por lo tanto, para obtener seguro, siempre es una buena idea a seguir este camino en previsión de una posible nueva versión.

¿Para quién es all'asciutto objeto de programación, como un tablero de lectura clases, objetos y casos!

La función, init() definido privado (véase el Actionscript 3.0: público, protegido, privado e internos) a través de la palabra clave private

Actionscript:
  1. / **
  2. * Método MovieClip invocado sólo se añade a la fase
  3. *
  4. * @ Param) y (event = pasó de addEventListener (). Puede ser nulo
  5. * Regreso vacío @
  6. * @ Privado
  7. * /
  8. init ( e :Event = null ) : void { función pública init (e: Event = null): void (
  9. initCell ();
  10. )

Por el momento, como pueden ver, esta función no es otra llamada initCell() A menudo, en el método init() se incluyen todas las funciones de inicialización, no directamente introduzca el código abierto. Esto puede volver a servir en caso de volver a inicializar todos los parámetros. Desde este un ejemplo de un juego relativamente simple, puede ser extraño tener esta doble salto casi inútil, pero en otros casos, el método init() más amplio, llamando a una serie de funciones como la de inicio:

Actionscript:
  1. init ( e :Event = null ) : void { función pública init (e: Event = null): void (
  2. initBackground ();
  3. initIntro ();
  4. initPlayers ();
  5. initScore ();
  6. initEnemy ();
  7. initSound ();
  8. ; start ();
  9. )

El método init() se invoca (que se llama) cuando el sistema libera el caso ADDED_TO_STAGE Precisamente por este motivo se ha incluido el parámetro e:Event

Trucos nota: puede a menudo tienen métodos (como init() que se recuperan de ambos eventos, tanto en el código. Es precisamente por esta razón que el parámetro de este método se estableció e:Event = null De esta manera, si se utiliza cada vez, podemos llamar a init() sin pasar ningún parámetro, porque no somos un caso y, a continuación, no podía mover el interruptor e:Event de "simulada" con un considerable derroche de energía ). Para obtener más información sobre la gestión de los parámetros en ActionScript 3.0 Ver también: Argumentos variables y por defecto en Javascript, Actionscript y PHP y los temas varían de ActionScript 3.0,

Inicialización del juego

Actionscript:
  1. / **
  2. * Borrar un conjunto lineal que representan nuestra red de juego.
  3. * Esta "red" está configurado a cero (0), el valor que se indica que no
  4. * Entrar (o / x) se ha hecho.
  5. * En 1 jugador (s) se le asignará un valor (1). Si bien el jugador 2 (x) se
  6. * Asociado valor de diez (10). Con este truco cuando, por ejemplo,
  7. * Suma de los valores en la fila 1 es igual a 3, que ganó el jugador 1.
  8. * Si la suma en lugar de la columna 1 es de 30, entonces el jugador gana 2 ... y tan bien.
  9. *
  10. * 0 | 0 | 0
  11. * --+---+---
  12. * 0 | 0 | 0
  13. * --+---+---
  14. * 0 | 0 | 0
  15. *
  16. * @ Param vacío
  17. * Regreso vacío @
  18. * @ Privado
  19. * /
  20. initCell ( ) : void { initCell private function (): void (
  21. / / Preimposto la serie de juegos a cero
  22. , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] ; __cell = [0, 0, 0, 0, 0, 0, 0, 0, 0];
  23. / / Siempre se inicia el jugador (jugador) 1
  24. __player = 1;
  25. / / Aprovechando la red en la pantalla
  26. createGrid ();
  27. / / Monstruo en el cambio de un reproductor de vídeo (en este caso 1)
  28. +__player; turno_txt. texto = 'JUGADOR' + __player;
  29. / / Esta variable se utiliza para poner el juego en pausa si es cierto
  30. / / Comienza el juego
  31. __stop = false;
  32. )

Este método initCell() se encarga de todas las variables y crear todos los objetos del juego.

Trucos nota: casi todos los programadores de vídeo conocen bien la técnica para cartografiar la zona de juego en una matriz de una o más dimensiones. Esta técnica, utilizada en los llamados juego de los ladrillos, pueden realizar una variedad de controles en una lógica de la libertad de gráficos de vídeo. En este caso particular, he usado un simple-un conjunto compuesto de 9 elementos que constituyen el 9 cajas del juego. Que los elementos de la matriz son secuenciales, en comparación con el 3 x 3 rejilla, no es un problema como veremos, pero sólo una cuestión de puntos de vista!
Para aquellos que quieran profundizar en el interesante tema, el Consejo dio lectura Azulejos de juegos basados en

Todas las variables de uso interno, de clase mundial, han alentado el uso con el doble de relieve en el frente. Estos, de hecho, durante el primer proyecto de una clase podría convertirse en bienes públicos, la explotación de su encapsulación de la programación OO (véase el buen escribir código OO en Adobe Flash). __player Y __stop muestran, respectivamente, el jugador activo y el estado del juego.

Por ahora me detendré aquí! La próxima vez, analizar el método createGrid() el resto del juego, si tiene dudas o preguntas sobre esta parte comentó.

Post relacionados

2 comentarios a: "ActionScript 3.0 para principiantes: la lección # 2"

  1. Domingo, 28 de septiembre de 2008 a 14:52
    ActionScript 3.0 para principiantes: lección # 3 | Undolog.com dijo:

    [...] Analizando el ejemplo del juego Tic Tac Toe, en ActionScript 3.0 para principiantes: la lección # 2. Habíamos llegado a la función que crea la red de juego: Texto sin [...]

  2. Martes, 04 de noviembre, 2008 a las 12:01
    Billigflüge dijo:

    Aunque no me gusta Tic Tac Toe, porque el primer jugador siempre gana, si lo hace sobre sus marcas en los lugares adecuados, es su gran Tut! Hay algunos puntos poco claros para mí, pero espero que se traduzca el sitio rápidamente. Saludos cordiales

    Respuesta Cita

Déjanos tu comentario

TAG XHTML <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Utilice <pre> de adjuntar el código