Asteroids Spanish

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 30

asteroides

Asteroids es un clásico juego arcade. Dispara a los asteroides y evita los escombros.

Objetos del juego


La nave comienza en el medio de la pantalla. La nave se puede girar hacia la izquierda
y hacia la derecha para apuntar a los asteroides. El jugador puede empujar o frenar la
nave para moverse por la pantalla.

Las Balas pueden ser disparadas hacia los asteroides.

Hay 3 tamaños diferentes de asteroides. Los asteroides más grandes se dividen en


otros más pequeños cuando reciben el impacto de una bala.

Sonidos
Hay sonidos que se reproducen cuando el jugador acelera el motor de la nave, dispara
una bala, cuando un asteroide o el jugador es golpeado.
Controles
El jugador controla el juego con las teclas de flecha y el botón CTRL.

Flujo del juego


El juego comienza con la nave en el centro de la pantalla. Se pierde una vida si un
asteroide choca con la nave

Niveles
La cantidad de asteroides en la pantalla al comienzo del nivel aumenta a medida que
avanza el juego.

Necesitarás contar con los siguientes recursos.

Gráficos
● ship.gif - gráfico de barco animado
● bullet.gif - gráfico de bala
● roid_big.bmp - gran asteroide
● roid_medium.bmp - asteroide mediano
● roid_small.bmp - pequeño asteroide

sonidos
● rev.wav - suave sonido de aceleración
● boom.wav - sonido para reproducir cuando se golpean cosas
● zap.wav - ruido de disparo
● explosion.wav - big bang cuando el jugador muere

Inicie Game Maker y guarde su archivo con un nombre adecuado.

Crea un sprite llamado spr_ship y cargue el gráfico de la nave.


Observe que esta imagen cuenta con 72 subimágenes. Estas son imágenes de la nave
rotando en varias posiciones.

Crear un objeto usando este sprite y llámalo obj_ship.


Crear un nuevo Room y configura el background en color negro. Agrega el objeto de la
nave al centro de la pantalla.

Girando la nave
Abre la ventana del objeto obj_ship. Primero resolveremos la rotación.

Añadir un evento End Step y arrastrar una acción Change Sprite. Complete la
ventana emergente de la siguiente manera.
Al final de cada paso del juego, la nave se dibujará con la subimagen que coincida con
la dirección en la que mira. Hay 360 grados en un círculo, tenemos 72 imágenes, por
cada 5 grados de rotación en el círculo completo.
Ahora agrega un evento Keyboard y elegir Left. Arrastra una acción Move Free icono
y complete la ventana emergente como se muestra,

El evento de teclado para la flecha Right es similar pero con el siguiente cambio de
dirección,
La ventana de objetos de tu nave debería verse como la captura de pantalla,

Guarde y pruebe que la nave se puede girar en ambas direcciones usando las teclas del
cursor.

Manejando el empuje
En el juego clásico, el jugador puede empujar la nave y moverse por la pantalla.
Empujaremos con la tecla flecha Arriba y frenaremos con la tecla flecha Abajo.

Agregue un evento de teclado para la flecha Arriba (Up). Crea un nuevo sonido
llamado snd_rev. Arrastra una acción Play Sound en el evento que creó y reproducirá
este sonido cuando se presione la tecla. También arrastre una acción Set Variable y
complételo como se muestra.
Guarde y pruebe esto. La nave sale de la pantalla muy rápidamente si mantienes
presionada la tecla durante demasiado tiempo. Necesitamos hacer que la nave
reaparezca en la pantalla cuando se salga del borde. Para ello, cree un evento Outside
Room y arrastre la acción Wrap Screen, completándolo como se muestra,
Guarde y pruebe nuevamente. Eso es mejor, pero debemos poder reducir la velocidad.
Agrega un evento Keyboard para la tecla flecha abajo (Down). Sólo podemos reducir
la velocidad si el barco se está moviendo. Necesitamos comprobar esto. Arrastra una
acción Test Expression y complétalo de la siguiente manera,

Arrastra un bloque Start Block seguido por una acción Set Variable, completado
como se muestra.
Terminar con una acción End Block, guardar y probar.

El mecanismo de disparo
En la versión arcade del juego, la nave puede disparar balas. Nuestro primer trabajo es
crear un sprite llamado,spr_bullet usando el gráfico de viñetas de los recursos.

Crea un objeto a partir de esto llamado obj_bullet.


Regrese a la ventana del objeto obj_ship. Aquí es donde comienza el proceso de
cocción. Agrega un evento Create y arrastre en una acción Set Variable.
Estableceremos una variable llamada canfire = 0 como se muestra en la captura de
pantalla.

Ve al evento End Step que creó anteriormente y arrastre otra acción Set Variable.
Esta vez establezca el valor de canfire = -1 Relative. Como se muestra abajo.
Esto se utilizará para determinar el momento en el que podemos disparar las balas, de
modo que haya un retraso entre cada bala disparada.

Ahora agrega un evento Keyboard para la tecla CTRL. Arrastra una acción Test
Expression y pruébalo con canfire<0 como se muestra,

Arrastra una acción Start Block seguido de una acción Create instance, completando
el cuadro como se muestra.
Crea un sonido usando el sonido zap y llámalo snd_zap. Arrastra la acción Play Sound
y reproduce el sonido.

A continuación, arrastre una acción Set Variable y establezca el valor de canfire = 15.

Al ajustar el número, podrá aumentar y disminuir el retraso entre viñetas.

Termine con una acción End Block para obtener lo siguiente,


Movimiento de bala
Ahora debemos centrar nuestra atención en el bullet: abra la ventana del objeto y
agregue un evento Create. Arrastra la acción Move Free y complete la ventana así,

La bala comenzará a moverse en la dirección hacia la que mira el barco.


Ahora arrastre una acción Set Alarm y establezca la Alarm0 a 60 como se muestra,

Esto te da,
Ahora, agrega un evento Alarm para la Alarm0 y arrastrar una acción Destroy
instance.

Ahora tenemos que lidiar con lo que sucede cuando la bala sale de la pantalla. Añadir
un evento Outside Room y arrastrar una acción Wrap Screen y complétalo como se
muestra,
Guarde su trabajo y pruebe el mecanismo de disparo de balas. Ajuste la velocidad de la
bala (en su evento Create) o el retraso entre balas (en el evento de teclado CTRL)
hasta que esté satisfecho con la forma en que funciona.

Necesitaremos 3 tipos de asteroides. Los asteroides grandes se dividen en 3 asteroides


medianos cuando son impactados por una bala. Los asteroides medianos se dividen en
3 asteroides más pequeños cuando son impactados.

Crea 3 nuevos sprites llamados spr_roid_big, spr_roid_medium, spr_roid_small.


Asocia las 3 imágenes de asteroides con los sprites. Crea 3 objetos llamados
obj_roid_big, obj_roid_medium, obj_roid_small.

Abra la ventana para el asteroide grande y agregue un evento Create. Arrastra la


acción Move Free y complete la ventana emergente como se muestra a continuación,
Añadir un evento Outside Room y arrastrar una acción Wrap Screen para que el
asteroide regrese al extremo opuesto de la pantalla cuando llegue al borde.
Los otros 2 asteroides necesitarán los mismos 2 eventos con las mismas acciones. La
única diferencia estará en la acción Move Free. A medida que los asteroides se hacen
más pequeños, se mueven más rápidamente. Por lo tanto, las ventanas Move Free
deben completarse de la siguiente manera:
Agrega 2 asteroides grandes al borde de la habitación y ejecuta el juego para
comprobar el movimiento. Ajuste la configuración de velocidad si cree que es necesario.

Carga uno de los sonidos para que lo reproduzca cuando un asteroide sea impactado
por una bala, llámalo snd_boom.

Vaya a la ventana del objeto obj_roid_big y agregue un evento Collision con el


objeto obj_bullet. Arrastra una acción Play Sound y reproduzca el sonido que creó.

Ahora arrastre una acción Create instance y complete la ventana como se muestra,

Agrega otros dos de estos y rellenalos de la misma forma.

Finalmente arrastre una acción Destroy Instance tendrás lo siguiente,


Guarda y prueba qué sucede cuando golpeas el asteroide. Tendrás que hacer lo mismo
con el asteroide de tamaño mediano obj_roid_medium, excepto que crearás 3
asteroides pequeños.

En la ventana del objeto asteroide pequeño obj_roid_small, el evento de collision


sólo necesita reproducir el sonido y destruir el asteroide.

Prueba que todos los asteroides se destruyan como deberían.

Ahora abre la ventana del objeto obj_bullet. Cuando la bala golpea un asteroide,
debemos destruir la bala y aumentar la puntuación. Voy a aumentar la puntuación en
10 para un asteroide grande, 20 para un asteroide mediano y 30 para uno pequeño.
Agrega un evento collision en la ventana del objeto obj_bullet. La colisión debe ser con
el objeto obj_roid_big. Arrastra una acción Set Score y complétalo como se muestra.
Sigue eso con un Destroy instance.

Haz lo mismo con los otros 2 asteroides con ajustes de puntuación que se adapten a tu
estado de ánimo.

Guarda y prueba el juego hasta el momento.

Necesitaremos realizar un seguimiento de la puntuación entre diferentes rooms


(niveles) y cuando la nave no esté allí. Para hacer esto, creamos un objeto invisible y
persistente llamado obj_game_controller,
Agrega el objeto al primer room.

Agrega un evento Create al objeto. Arrastre las acciones Set Score = 0, Set Lives =
3 y finalmente arrastre la acción Score Caption y complétalo como se muestra,
Cuando los asteroides chocan contra la nave
Crea un sonido llamado snd_dead cargar un sonido apropiado.

Volver al objeto obj_ship y agregue 3 eventos de colisión (uno para cada uno de los
tipos de asteroides). En cada evento necesitamos,

● reproducir el sonido
● Reducir el número de vidas en 1.
● Destruye la instancia del barco
Los eventos se verán como en la captura de pantalla.

Ahora, con la nave desapareciendo ante nosotros, debemos asegurarnos de que vuelva
a aparecer en la pantalla si quedan vidas. En el juego clásico, la nave no reaparece en
medio de un asteroide. Esto es un poco complicado, pero ahí va,

Ve al objeto obj_game_controller y agregue un evento End Step. Arrastra una


acción Test Instance Count y complete la ventana como se muestra,
Arrastra una acción Start Block

Arrastra una acción Test Expression y complete el cuadro de expresión con (x<280
|| x>320) && (y<180 || y>250), debe lucir igual que,

Arrastra otro evento Start Block


Arrastra otra acción Test Expression y complete el cuadro de expresión con (x<280
|| x>320) && (y<180 || y>250), esta vez para el objeto obj_roid_medium.

Arrastra otra acción Start Block

Ahora, arrastra otra acción Test Expression y complete el cuadro de expresión con
(x<280 || x>320) && (y<180 || y>250), esta vez para el objeto obj_roid_small.

Arrastra otra acción Start Block

Arrastra una acción Create Instance y complete los detalles que se muestran,

Arrastre 4 acciones End Block para que tengas lo siguiente,


Este conjunto de acciones devuelve la nave a la pantalla evitando normalmente una
colisión con los asteroides.

Comprobando que no haya más vidas


Por ahora, sólo necesitas finalizar el juego cuando el jugador se quede sin vidas. Ve a la
ventana del objeto obj_game_controller y crea un evento No more lives. Arrastre
los íconos para darle al jugador un mensaje de que el juego ha terminado(Game over)
y luego para finalizar el juego.

Comprobando el final del nivel


El nivel termina si no quedan más instancias de asteroides en el room.

Agrega un evento Begin step a la ventana del objeto obj_game_controller y arrastre


una acción Test Instance Count. Rellénelo para verificar si hay 0 instancias del
asteroide grande. Debe lucir igual que,
Sigue esto con una acción Start Block. Arrastra otra acción Test Instance Count y
complétalo para comprobar si no hay instancias del asteroide mediano.

Agrega otra acción Start Block y luego arrastre la acción para probar si hay 0
instancias del asteroide pequeño.

El resto de acciones comprueban si hay otros rooms. Si hay un room adelante (nivel 2),
se cargará; de lo contrario, se reiniciará el room actual. Asegúrese de que su evento se
parezca a la captura de pantalla,
Guarda y prueba el juego.

Más niveles
La forma más obvia de ampliar este juego es agregar algunos niveles más después del
primero. Puedes duplicar el primer room para crear un nuevo nivel. Asegúrese de que
sólo el primer nivel tenga el objeto obj_game_controller en él, de lo contrario, las
vidas y la puntuación se establecerán en cada nivel.

La diferencia más obvia entre niveles es la cantidad de asteroides. Suelen aumentar en


1 por nivel.

Pantallas de inicio y fin


Como todos los juegos, una pequeña cantidad de "packaging" marca la diferencia en la
experiencia de juego. Más pantallas informativas al principio y al final del juego
mejorarían la experiencia. Las tablas de puntuación alta son bastante fáciles de
implementar en Game Maker y se adaptarían a este tipo de juego.
Características adicionales
Algunas características del juego clásico no se han implementado. Un botón para el
hiperespacio podría hacer que la nave desaparezca y reaparezca en una ubicación
aleatoria de la pantalla.

También es normal tener un OVNI que aparezca de vez en cuando, disparando a la


nave hasta que sale de la pantalla. Se otorgan grandes puntos por disparar al intruso.

Rehacer los gráficos


Hay muchas formas de hacer esto. Quizás podrías crear un conjunto de gráficos retro
para que el juego se parezca a la versión clásica. ¿Qué tal si disparamos llamas desde
la parte trasera de la nave cuando está empujando y no cuando está quieto?

También podría gustarte