En este tutorial, te mostraré cómo crear un bonito juego de minigolf con ActionScript 3.0. Trabajaremos con Event Handlers, Functions y también con el objeto Timer, que es una característica realmente genial en AS3..
Encontrarás que hay muchos dibujos involucrados con este proyecto. Si prefiere no hacer todo eso usted mismo, solo descargue el archivo programmeGolf.fla y vaya al Paso 19 donde comienza la parte de programación.
Empecemos abriendo un nuevo archivo de ActionScript 3.0 Flash.
Cambie las dimensiones en el panel de propiedades (600 px por 400 px) y establezca la velocidad de fotogramas en 30 fps.
Ahora vamos a preparar algunos gráficos. Cree un rectángulo (600 px por 400 px) y colóquelo en las coordenadas 0, 0. Rellene el rectángulo con un degradado (# 0066FF a #FFFFFF).
Seleccione el objeto y presione F8. Elija Clip de película y llámelo "fondo".
Vaya al objeto de fondo (haga doble clic en él) y agregue algunos gráficos. Agregué nubes y árboles con solo seleccionar la herramienta de pincel y dibujar algunas formas simples. Haz esto en una nueva capa para mantener las cosas organizadas. Para las nubes utilicé un color azul claro (# 8FBBE8), para los árboles un color violeta claro (# 8DA5C7). Finalmente recorté las nubes y los árboles a lo largo de mi escenario..
En la escena principal, cree un rectángulo (600 px por 50 px) y colóquelo en las coordenadas 0, 350. Rellene el rectángulo con un degradado (# 543201 a # 985B01).
Seleccione el objeto y presione F8. Seleccione Clip de película y llámelo "molido". Cambie su registro a la izquierda y exporte el objeto para ActionScript. Haga clic en Aceptar.
Vaya al objeto de tierra (haga doble clic en él) y cree una nueva capa. Elija la herramienta primitiva de rectángulo (R), dibuje una forma (10px por 20px) y colóquela en las coordenadas 0, -35. Establecer el radio de la esquina a 4px.
Copia estos rectángulos en toda la longitud de la escena. Ahora, seleccione todos ellos, conviértalos en editables (Ctrl + B) y rellénelos con un degradado (# 009900 a # 35FD35).
Ahora vamos a crear una forma que enmascarará nuestra tierra y hierba. Por lo tanto, el color no importa. Cree un rectángulo (900 px por 70 px) y colóquelo en las coordenadas -300, -40.
Cree una forma de "orificio" (20px por 40px) usando la herramienta Óvalo y Rectángulo, luego colóquela en las coordenadas 300, -40. Ahora asegúrese de que la forma de su agujero esté en la misma capa con nuestro rectángulo azul creado anteriormente. Si es así, selecciónalo y borra. Debes conseguir la forma final de la máscara..
Presiona F8 y conviértelo en un Clip de Película. Cambie el punto de registro a la izquierda y asígnele el nombre "grassMask". Una vez que haya creado su Clip de película, asígnele un nombre de instancia "grassMask".
Ahora deberíamos establecer el enmascaramiento. Haga doble clic en la capa donde se encuentra el objeto terrestre y seleccione la opción "enmascarado". Haz lo mismo con la capa de hierba. En la capa que contiene su objeto "grassMask" elija la opción "máscara". Ahora puedes dejar el objeto "molido" y volver al escenario principal..
Seleccione la herramienta Pincel (B) y dibuje un objeto de estaca (# C25C00). Ahora elija la herramienta Rectángulo (R) y dibuje un objeto de marca (#FFDCDC). Selecciona los dos objetos y presiona F8. Seleccione Clip de película y llámelo "bandera". Cambie el punto de registro y expórtelo para ActionScript..
Ahora empieza lo peor :) dibujando un personaje. Generalmente dibujo algo a mano y luego lo dibujo en Flash, así que vamos a usar mi imagen escaneada dibujada a mano. Descárguelo aquí e impórtelo en la biblioteca (Archivo> Importar> Importar a biblioteca ...). Cree un nuevo clip de película (Ctrl + F8) y asígnele el nombre "bearMC". Arrastre el oso de la biblioteca al escenario, bloquee la capa que contiene el mapa de bits y cree una nueva capa. Necesitamos separar partes del cuerpo para que cada parte esté en otra capa.
Vamos a empezar con una cabeza. Elija la herramienta de pincel (B). Seleccione la forma de círculo más grande y el color marrón (# 432801). Empieza a dibujar los contornos de la cabeza. Finalmente, puede seleccionar la herramienta Pintar pintura (K) y llenar la cabeza con colores. Bueno no es asi :) Haga lo mismo con los brazos, el cuerpo, las piernas y el palo de golf. No olvides colocar cada parte en capas separadas..
Ahora deberíamos hacer algunos cambios. En primer lugar, elimine la capa con su mapa de bits de oso (también deberíamos eliminar el mapa de bits de oso de la biblioteca). Ahora selecciona todo el personaje en todas las capas. Debido a que cargaremos el carácter dinámicamente utilizando ActionScript, necesitamos tener la escala correcta. Elija la herramienta de transformación libre (Q) y haga que el oso sea más pequeño (alrededor de 80 px de ancho).
Haga clic en el primer cuadro de la capa de la cabeza. Ahora se debe seleccionar toda la cabeza. Presiona F8 y llámalo "cabeza". Exportarlo para ActionScript también. Haga exactamente lo mismo con el cuerpo ("cuerpo"), los brazos ("brazos") y el palo ("palo").
Cada objeto en Flash gira alrededor de un punto de pivote, por lo que tenemos que ajustar los puntos de pivote de nuestro brazo y brazos. Oculta tu capa de cabeza y cuerpo y selecciona la capa de barra y brazos. Deberías ver los puntos de pivote de nuestros objetos..
Cree algún tipo de marca en una capa separada donde realmente deberían estar los pivotes (entre los hombros) para permitir la rotación adecuada.
Ahora tome uno de los objetos y arrástrelo a la marca (el punto de pivote debe estar en la marca). Haz lo mismo con el segundo objeto..
Ahora muestre todas las capas y borre la marca que hicimos antes. Entra en el objeto de los brazos (haz doble clic en él) para que puedas colocar los brazos en la posición correcta.
Deja el objeto de los brazos y haz lo mismo con el palo..
Ve a la escena principal y crea una nueva capa, llámala "oso". Toma "bearMC" de la biblioteca y arrástralo al escenario principal. Con nuestro "bearMC" seleccionado presione Ctrl + B. Ahora puedes borrar "bearMC" de la biblioteca.
Presiona Ctrl + F8 y crea un nuevo Clip de Película. Nómbrelo como "manzana" y exportarlo para ActionScript. Usa la herramienta Pincel (B) y dibuja una forma de manzana. También puede agregar hojas y un tallo si lo desea. Ahora seleccione todo el objeto y redúzcalo con la Herramienta de transformación libre (Q), con un ancho máximo de 20 px.
Seleccione el objeto entero de nuevo y presione F8. Nómbrelo como "AppleFall". El punto de registro debe estar en el medio. Asígnele un nombre de instancia "appleFall" en el panel de propiedades.
Entra en el objeto "appleFall" (haz doble clic en él). Crea una nueva capa y llámala "acción". Vaya al cuadro 7 y cree un nuevo fotograma clave (F6). Luego vaya al panel de acciones (F9) y escriba:
detener();
Selecciona el primer cuadro y haz lo mismo..
Ahora agregue los fotogramas clave (F6) en los fotogramas segundo, cuarto, sexto y séptimo de la capa "manzana". Seleccione el segundo al sexto cuadro y cree una interpolación de movimiento (clic derecho> Crear interpolación de movimiento).
Ahora coloque las manzanas en los fotogramas clave aproximadamente en las posiciones que se muestran en la siguiente imagen.
Si todo está bien, puede volver a la escena principal y arrastrar un objeto "apple" de la biblioteca al escenario..
Crea una nueva capa y llámala "mensajes". Elige una herramienta de texto (T) y crea un nuevo campo de texto en el centro del escenario (elegí una fuente Arial azul). Establezca el tipo de campo en Texto dinámico y asigne un nombre de instancia "myMessage". Puedes bloquear la capa ahora.
Crea una nueva capa y llámala "contador". De nuevo, arrastre un objeto de manzana de la biblioteca al escenario y colóquelo en 30, 30. Presione Ctrl + B dos veces (porque tenemos dos clips de película para romper Apple y AppleFall) y rellene el objeto con un color blanco. Haz cinco instancias y colócalas en una línea. Selecciona todos ellos y presiona F8. Denomínelo "counterBcg". Vaya al panel de propiedades y cambie el color de ninguno a alfa al 40%.
Arrastre una manzana de la biblioteca al escenario, colóquela a 30, 30 y presione Ctrl + B dos veces nuevamente. Presiona F8 y nombra el clip de la película "contador". Vaya a este objeto (haga doble clic en él) y agregue un fotograma clave más. En este fotograma clave, rellene la manzana con un color azul (esta manzana se mostrará en el mostrador si pierde el agujero).
Vaya al panel de acciones de cada fotograma clave (F9) y escriba:
detener();
Ve a la escena principal, crea cinco instancias de la manzana, nuevamente formando una línea. Cada manzana tendrá un nombre de instancia ("a1", "a2", "a3", etc.).
Aqui estamos. La parte del dibujo ha terminado. Tome un pedazo de papel y anote las coordenadas de la cabeza, los brazos, el cuerpo, el palo, la manzana, el suelo y la bandera para poder unirlos dinámicamente..
Ahora puedes borrarlos de la escena..
Aquí hay un rápido desglose de cómo abordaremos la programación:
Toda la programación se coloca en el primer cuadro de la capa de acciones. Así que vamos a crear una nueva capa y llamémosle "acciones". En primer lugar, agregaremos tres bloques de comentarios a nuestro código:
// Variables // EventListeners // Funciones
Cuando los comentarios estén listos, podemos agregar el siguiente código que adjuntará nuestros objetos de la biblioteca al escenario..
(Líneas adicionales 2-8, 13-23)
// Variables var myHead = new head (); var myArms = new arms (); var myBody = nuevo cuerpo (); var myStick = new stick (); var myGround = new ground (); var myFlag = new flag (); var myApple = nueva manzana (); // EventListeners // Functions function resetScene (): void addChild (myHead); addChild (myArms); addChild (myBody); addChild (myStick); addChild (myGround); addChild (myFlag); addChild (myApple); resetScene ();
Ahora tenemos todos nuestros objetos en la escena en las coordenadas 0, 0. Los objetos se adjuntan en la escena cada vez que se llama a la función resetScene. Volvamos a referirnos a nuestro papel donde anotamos las coordenadas. También usaremos una función aleatoria para generar la posición x de nuestro agujero y bandera.
(Líneas adicionales 9, 22-39)
// Variables var myHead = new head (); var myArms = new arms (); var myBody = nuevo cuerpo (); var myStick = new stick (); var myGround = new ground (); var myFlag = new flag (); var myApple = nueva manzana (); var grassMask: Number; // EventListeners // Functions function resetScene (): void addChild (myBody); addChild (myArms); addChild (myHead); addChild (myStick); addChild (myGround); addChild (myFlag); addChild (myApple); grassMask = (320 + Math.random () * 260); myBody.x = 70; myBody.y = 296; myArms.x = 68; myArms.y = 276; myArms.rotation = 0; myHead.x = 70; myHead.y = 215; myStick.x = 68; myStick.y = 276; myStick.rotation = 0; miApple.x = 90; myApple.y = 331; myGround.x = 0; myGround.y = 375; myGround.grassMask.x = grassMask - 610; myFlag.x = grassMask; myFlag.y = 375; resetScene ();
Todos los objetos deben colocarse correctamente y nuestra máscara y bandera deben estar en una posición x aleatoria. Agregue las siguientes líneas debajo de la función resetScene. Ocultará las manzanas para contar nuestra puntuación..
(Líneas adicionales 6-15)
... resetScene (); function invisibleApples (): void a1.visible = false; a2.visible = falso; a3.visible = falso; a4.visible = falso; a5.visible = falso; a6.visible = falso; invisibleApples ();
Ahora agregaremos oyentes para nuestro teclado. Si presionamos cualquier tecla, se llamará a la función onDown. Si entonces soltamos alguna tecla, se llamará a la función onUp. También necesitamos añadir un escucha de marco de entrada..
El principio es muy simple; si presiona cualquier tecla, el verificador de variables contendrá el valor 1. Si suelta la tecla, el verificador de variables contendrá un valor de 0. La función Hit, que aparece en cada cuadro de nuestro programa (30 veces por segundo en Nuestro caso) actuará a lo largo de esos valores (rotación afirmativa o negativa). Las variables speedUp y speedDown son solo números que nos dicen qué tan grande será la rotación. Las variables minPower y maxPower nos indican el grado mínimo y máximo de rotación de la palanca. Escriba las siguientes líneas:
(Líneas adicionales 12,13,18-37)
// EventListeners stage.addEventListener (KeyboardEvent.KEY_DOWN, onDown); stage.addEventListener (KeyboardEvent.KEY_UP, onUp); stage.addEventListener (Event.ENTER_FRAME, hit); // Funciones ... myFlag.x = grassMask; myFlag.y = 375; verificador = 0; minPower = 0; resetScene (); function onDown (e: KeyboardEvent): void checker = 1; minPower = -20; function onUp (e: KeyboardEvent): void checker = 0; función hit (e: Evento): void if ((checker == 1) && (myStick.rotation < maxPower)) myStick.rotation += speedUp; myArms.rotation += speedUp; else if(myStick.rotation > minPower) myStick.rotation - = speedDown; myArms.rotation - = speedDown;
Estamos usando algunas variables nuevas en el código, así que tenemos que inicializarlas. Agrega las siguientes líneas a la parte superior. Las variables checker y minPower se declaran en la función resetScene porque se cambiarán durante el programa y tendremos que restablecerlas más tarde.
(Líneas adicionales 7-17)
// Variables… var myApple = new apple (); var grassMask: Number; var speedUp: int = 2; var speedDown: int = speedUp * 8; corrector var: int; var minPower: int; var maxPower: int = 110;
Usaremos el método hitTestObject para recuperar información sobre la colisión entre nuestro palo y la manzana. Si ocurre una colisión, se llamará a la función de disparo..
(Líneas adicionales 7,8,16,30-32,36-40)
// Variables… var minPower: int; var maxPower: int = 110; fuerza var: Número; var applePower: Número; // Funciones ... function onUp (e: KeyboardEvent): void checker = 0; applePower = (myApple.x + myStick.rotation) * 3.2; … Función hit (e: Evento): void if ((checker == 1) && (myStick.rotation < maxPower)) myStick.rotation += speedUp; myArms.rotation += speedUp; else if(myStick.rotation > minPower) myStick.rotation - = speedDown; myArms.rotation - = speedDown; if (myStick.hitTestObject (myApple)) stage.addEventListener (Event.ENTER_FRAME, disparo); disparo de función (e: Evento): void strength = (applePower - myApple.x); miApple.x + = fuerza / 30; myApple.rotation + = fuerza / 4;
Disparar debería funcionar. Ahora vamos a codificar una manzana cayendo en el agujero. Estaremos probando en nuestra función de disparo si la distancia desde el agujero es lo suficientemente pequeña y la fuerza es lo suficientemente baja. Si este fuera el caso, podemos reproducir nuestro clip donde una manzana cae en el agujero. Mis reglas (valores numéricos) son muy estrictas. Puedes definir tus propias reglas más ligeras si lo prefieres..
(Lineas adicionales 17,27-34,37,38)
// Variables… var strength: Number; var applePower: Número; distancia var: Número; objetivo var: int; // Funciones función resetScene (): void … checker = 0; minPower = 0; objetivo = 0; resetScene ();… disparo de función (e: Evento): void strength = (applePower - myApple.x); distance = grassMask - myApple.x; if ((Math.round (distancia) <= 10) && (Math.round(distance) >= 3) && (fuerza <= 65)) if(target == 0) myApple.appleFall.play(); myApple.rotation = 0; target = 1; else if(strength > 5) myApple.x + = fuerza / 30; myApple.rotation + = fuerza / 4;
Aquí hay un desglose de cómo funciona realmente la función de disparo. Es muy sencillo. Agregaremos algunas líneas más adelante, pero este es el núcleo..
Si la distancia y la fuerza son bajas y el objetivo aún no ha sido alcanzado
Si la distancia y la fuerza no están al lado de nuestros valores. y si la fuerza todavía es lo suficientemente grande - inferior a 5 y la manzana deja de moverse
Ahora vamos a hacer un contador de puntuación. Primero tenemos que inicializar una nueva variable llamada tryShot; cuenta los intentos que nos quedan incrementando uno cada vez que se llama a la función resetScene. Si golpeamos el agujero aparecerá una manzana. Si perdemos el agujero, también aparecerá una manzana, pero saltará al segundo fotograma del clip (mostrando una manzana azul).
(Líneas adicionales 6,7,15,16,31,37-40)
// Variables… var distancia: Número; objetivo var: int; var tryShot: int = 0; // Functions function resetScene (): void … minPower = 3; objetivo = 0; tryShot ++; resetScene ();… disparo de función (e: Evento): void strength = (applePower - myApple.x); distance = grassMask - myApple.x; if ((Math.round (distancia) <= 10) && (Math.round(distance) >= 3) && (fuerza <= 65)) if(target == 0) myApple.appleFall.play(); myApple.rotation = 0; target = 1; this["a" + tryShot].visible = true; else if(strength > 5) myApple.x + = fuerza / 30; myApple.rotation + = fuerza / 4; else this ["a" + tryShot] .visible = true; este ["a" + tryShot] .gotoAndStop (2);
Agregue las siguientes líneas en el código. Se asegurarán de que la función de cuenta regresiva (que restablece la escena y elimina al oyente para la función de disparo) se llamará dos segundos después de que termine cualquier disparo (no importa si el orificio fue o no fue golpeado). También tenemos que agregar una condición a nuestra función de hit que restringe el número de intentos a seis.
(Líneas adicionales 7,13,22,30,44,55,64,69-72)
// Variables… var target: int; var tryShot: int = 0; var myTimer = new Timer (2000, 1); // EventListeners stage.addEventListener (KeyboardEvent.KEY_DOWN, onDown); stage.addEventListener (KeyboardEvent.KEY_UP, onUp); stage.addEventListener (Event.ENTER_FRAME, hit); myTimer.addEventListener (TimerEvent.TIMER, countDown); // Funciones de la función resetScene (): void ;… target = 0; tryShot ++; myApple.appleFall.gotoAndStop (1); resetScene (); ... hit de función (e: Evento): void if (tryShot < 7) if((checker == 1) && (myStick.rotation < maxPower)) myStick.rotation += speedUp; myArms.rotation += speedUp; else if(myStick.rotation > minPower) myStick.rotation - = speedDown; myArms.rotation - = speedDown; if (myStick.hitTestObject (myApple)) stage.addEventListener (Event.ENTER_FRAME, disparo); función de disparo (e: Evento): void strength = (applePower - myApple.x); distance = grassMask - myApple.x; if ((Math.round (distancia) <= 10) && (Math.round(distance) >= 3) && (fuerza <= 65)) if(target == 0) myApple.appleFall.play(); myApple.rotation = 0; target = 1; this["a" + tryShot].visible = true; myTimer.start(); else if(strength > 5) myApple.x + = fuerza / 30; myApple.rotation + = fuerza / 4; else this ["a" + tryShot] .visible = true; este ["a" + tryShot] .gotoAndStop (2); myTimer.start (); function countDown (e: TimerEvent): void resetScene (); stage.removeEventListener (Event.ENTER_FRAME, disparo);
Ahora debemos crear algunos mensajes de texto, para que el jugador sepa lo que está pasando.
(Líneas adicionales 8,29-31,43,53)
// Functions function resetScene (): void … tryShot ++; myApple.appleFall.gotoAndStop (1); myMessage.text = "Presiona cualquier tecla!"; resetScene (); ... hit de función (e: Evento): void if (tryShot < 7) if((checker == 1) && (myStick.rotation < maxPower)) myStick.rotation += speedUp; myArms.rotation += speedUp; else if(myStick.rotation > minPower) myStick.rotation - = speedDown; myArms.rotation - = speedDown; if (myStick.hitTestObject (myApple)) stage.addEventListener (Event.ENTER_FRAME, disparo); else myMessage.text = "Game Over"; disparo de función (e: Evento): void strength = (applePower - myApple.x); distance = grassMask - myApple.x; if ((Math.round (distancia) <= 10) && (Math.round(distance) >= 3) && (fuerza <= 65)) if(target == 0) myApple.appleFall.play(); myApple.rotation = 0; target = 1; this["a" + tryShot].visible = true; myMessage.text = "Cooool!"; myTimer.start(); else if(strength > 5) myApple.x + = fuerza / 30; myApple.rotation + = fuerza / 4; else this ["a" + tryShot] .visible = true; este ["a" + tryShot] .gotoAndStop (2); myMessage.text = "Bad Luck!"; myTimer.start ();
Como hemos creado un juego tan magnífico, hay muchas posibilidades de que nuestro jugador quiera volver a jugar :-) así que hagámoslo posible. Si el jugador llega a seis intentos (el bloque de código donde escribimos "Game Over") debemos agregar un oyente final a nuestro escenario. Es un detector de mouse y llama a una función si hace clic en cualquier lugar.
(Líneas adicionales 12-17,37,38,42,47)
// Funciones ... función invisibleApples (): void a1.visible = false; a2.visible = falso; a3.visible = falso; a4.visible = falso; a5.visible = falso; a6.visible = falso; a1.gotoAndStop (1); a2.gotoAndStop (1); a3.gotoAndStop (1); a4.gotoAndStop (1); a5.gotoAndStop (1); a6.gotoAndStop (1); … Función hit (e: Evento): void if (tryShot < 7) if((checker == 1) && (myStick.rotation < maxPower)) myStick.rotation += speedUp; myArms.rotation += speedUp; else if(myStick.rotation > minPower) myStick.rotation - = speedDown; myArms.rotation - = speedDown; if (myStick.hitTestObject (myApple)) stage.addEventListener (Event.ENTER_FRAME, disparo); else else myMessage.text = "Game Over \ nHaga clic para volver a jugar"; stage.addEventListener (MouseEvent.MOUSE_DOWN, playAgain); function playAgain (e: MouseEvent): void resetScene (); invisibleApples (); tryShot = 1; stage.removeEventListener (MouseEvent.MOUSE_DOWN, playAgain);
// Variables var myHead = new head (); var myArms = new arms (); var myBody = nuevo cuerpo (); var myStick = new stick (); var myGround = new ground (); var myFlag = new flag (); var myApple = nueva manzana (); var grassMask: Number; var speedUp: int = 2; var speedDown: int = speedUp * 8; corrector var: int; var minPower: int; var maxPower: int = 110; fuerza var: Número; var applePower: Número; distancia var: Número; objetivo var: int; var tryShot: int = 0; var myTimer = new Timer (2000, 1); // EventListeners stage.addEventListener (KeyboardEvent.KEY_DOWN, onDown); stage.addEventListener (KeyboardEvent.KEY_UP, onUp); stage.addEventListener (Event.ENTER_FRAME, hit); myTimer.addEventListener (TimerEvent.TIMER, countDown); // Función de la función resetScene (): void addChild (myBody); addChild (myArms); addChild (myHead); addChild (myStick); addChild (myGround); addChild (myFlag); addChild (myApple); grassMask = (320 + Math.random () * 260); myBody.x = 70; myBody.y = 296; myArms.x = 68; myArms.y = 276; myArms.rotation = 0; myHead.x = 70; myHead.y = 215; myStick.x = 68; myStick.y = 276; myStick.rotation = 0; miApple.x = 90; myApple.y = 331; myGround.x = 0; myGround.y = 375; myGround.grassMask.x = grassMask - 610; myFlag.x = grassMask; myFlag.y = 375; verificador = 0; minPower = 0; objetivo = 0; tryShot ++; myApple.appleFall.gotoAndStop (1); myMessage.text = "Presiona cualquier tecla!"; resetScene (); function invisibleApples (): void a1.visible = false; a2.visible = falso; a3.visible = falso; a4.visible = falso; a5.visible = falso; a6.visible = falso; a1.gotoAndStop (1); a2.gotoAndStop (1); a3.gotoAndStop (1); a4.gotoAndStop (1); a5.gotoAndStop (1); a6.gotoAndStop (1); invisibleApples (); function onDown (e: KeyboardEvent): void checker = 1; minPower = -20; function onUp (e: KeyboardEvent): void checker = 0; applePower = (myApple.x + myStick.rotation) * 3.2; función hit (e: Evento): void if (tryShot < 7) if((checker == 1) && (myStick.rotation < maxPower)) myStick.rotation += speedUp; myArms.rotation += speedUp; else if(myStick.rotation > minPower) myStick.rotation - = speedDown; myArms.rotation - = speedDown; if (myStick.hitTestObject (myApple)) stage.addEventListener (Event.ENTER_FRAME, disparo); else else myMessage.text = "Game Over \ nHaga clic para volver a jugar"; stage.addEventListener (MouseEvent.MOUSE_DOWN, playAgain); function playAgain (e: MouseEvent): void resetScene (); invisibleApples (); tryShot = 1; stage.removeEventListener (MouseEvent.MOUSE_DOWN, playAgain); disparo de función (e: Evento): void strength = (applePower - myApple.x); distance = grassMask - myApple.x; if ((Math.round (distancia) <= 10) && (Math.round(distance) >= 3) && (fuerza <= 65)) if(target == 0) myApple.appleFall.play(); myApple.rotation = 0; target = 1; this["a" + tryShot].visible = true; myMessage.text = "Cooool!"; myTimer.start(); else if(strength > 5) myApple.x + = fuerza / 30; myApple.rotation + = fuerza / 4; else this ["a" + tryShot] .visible = true; este ["a" + tryShot] .gotoAndStop (2); myMessage.text = "Bad Luck!"; myTimer.start (); function countDown (e: TimerEvent): void resetScene (); stage.removeEventListener (Event.ENTER_FRAME, disparo);
Bastante simple no era? Ahora puedes tontear con todo tipo de cosas; puedes agregar otros niveles, terrenos, puedes cambiar el personaje, agregar trucos al juego, agregar un menú del juego o una introducción y así sucesivamente. Hay posibilidades ilimitadas, así que espero que les haya resultado útil y gracias por leer.!