Lab Plataformas

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 39

Juego tipo “Plataformas”

Las Bases
Nosotros empezamos con el más simple juego de plataformas. En cada juego de plataformas
existen dos objetos base: el personaje que es controlado por el jugador, y un objeto block que es
usado para los pisos (plataformas) el jugador puede caminar sobre ellos. El mismo block es
también usado para las paredes que el jugador no puede atravesar. Necesitaremos dos sprites:
uno para el personaje principal y uno para el block. Para el personaje principal usaremos una
pelota, para el block nosotros usaremos un cuadrado negro. TODOS LOS RECURSOS ESTÁN EN LA
CARPETA RESOURCES DENTRO DEL FÓLDER JUEGO 4. PLATAFORMAS

Sprite Imagen Archivo


spr_character ball

spr_block block

Ahora hay que crear dos objetos: El objeto block obj_block, es un objeto sólido que no tiene
eventos o acciones.

El objeto del personaje principal, la pelota obj_character es un poco más complicado

Movimiento

Los aspectos cruciales que nosotros tratamos en esta primera sección es cómo definir el
movimiento del personaje principal. El problema es que el personaje puede caminar sobre los
pisos. Si el personaje principal salta o cae fuera de la plataforma debe aterrizar correctamente en
la siguiente plataforma. Hay diferentes formas en las cuales el personaje puede caminar, saltar o

4
caer. Diferentes juegos de plataformas usan modos diferentes. Normalmente se usan sólo tres
teclas de control de movimiento. La flecha izquierda que mueve al personaje a la izquierda, la
flecha derecha que lo mueve a la derecha y la tecla de flecha arriba o barra espaciadora para
saltar.
Primero consideraremos el movimiento a la izquierda y a la derecha. Partimos de que el jugador
puede únicamente cambiar su dirección de movimiento mientras está en la plataforma o mientras
está en el aire saltando o cayendo. Vamos a crear el objeto obj_character y añadir las acciones
para el movimiento de la izquierda, seleccionar el evento keyboard y dentro de él la opción Left ,
las acciones que realizaremos son: primero revisar si la posición relativa se encuentra libre If a
position is collision free usar las coordenadas (-4,0) y posteriormente saltar a esa posición Jump
to position.

Repetir lo mismo para la flecha derecha, sólo utiliza la coordenada (4,0).

5
Salto

Necesitamos el movimiento vertical. Para dar la impresión de que el personaje cae, nosotros
usaremos la gravedad. Pero debemos parar el movimiento cuando alcance el piso. También,
queremos una velocidad máxima de caída, de otra forma el personaje se moverá demasiado
rápido. Por lo tanto incluiremos un evento step en el objeto del personaje, donde checaremos si la
posición justo abajo del personaje está libre de colisión, si lo está, el personaje está en el aire y
nosotros estableceremos la acción gravity como un valor positivo. De otra forma nosotros lo
estableceremos en 0. Nosotros también checaremos la variable vspeed la cual indica la velocidad
vertical. Si es mayor de 12 nosotros la establecemos de nuevo en 12. De esta forma limitamos la
velocidad vertical a 12. El evento debe lucir como:

6
Lo siguiente que tenemos que hacer es lograr que aterrice correctamente en el piso. Esto es más
difícil de lo que se ve. Ocurre cuando el personaje colisiona con el objeto block obj_block, En este
evento de colisión nosotros estableceremos la velocidad vertical en 0. Pero esto dejará al
personaje una pequeña cantidad de espacio por encima del piso. (La razón es que el personaje es
ubicado de regreso a su posición previa antes de la colisión). Afortunadamente en Game Maker
existe una acción para resolver esto:

Move to Contact. Con esta acción podemos mover una instancia en una dirección dada hasta una
posición de contacto con un objeto. Se debe especificar la dirección, la distancia máxima a mover,
puedes también indicar que considere sólo a los objetos sólidos o bien a todos los objetos.

Nosotros utilizaremos esta acción, como dirección usamos la variable direction la cual regresa la
dirección actual de movimiento de la instancia. Como distancia máxima especificamos 12 y
realizamos la indicación de que aplica sólo a los objetos sólidos.

El evento de la colisión con el objeto obj_block queda como:

7
Finalmente tenemos que hacer que el personaje salte cuando la tecla de flecha Up esté
presionada. Pero esto puede pasar únicamente cuando el personaje se encuentre en el piso. Por lo
tanto primero checamos si la posición bajo el personaje crea una colisión y si es así especificamos
la velocidad vertical en -10.

Ahora tenemos las bases de un juego de plataformas listo. Diseña un nivel con algunos pisos y
paredes, especifica el Snap x y el Snap y en 16 , para que coincida con el tamaño del block de
construcción, construye utilizando instancias del objeto obj_block. Coloca una instancia del
personaje obj_character en tu room y listo. GRABA tu juego como Plataformas_1 y a jugar.

8
Versión 2 Juego tipo “Plataformas”

Retoma el archivo Plataformas_1 y genera un nuevo archivo con el nombre Plataformas_2, para
hacer esto emplea la opción Save As…

Mejorar los gráficos


Ya tenemos lo básico de un juego de plataformas, pero los gráficos no lucen muy bien, por lo tanto
queremos cambiar dos aspectos: la forma en que luce el personaje principal y la forma en que luce
el background.

Las imágenes del personaje

Vamos a iniciar con la imagen del personaje principal. Usaremos dos diferentes sprites (no
animados) uno para cuando el carácter está viendo hacia la izquierda y otro para cuando está
viendo hacia la derecha.

Sprite Imagen Archivo


spr_left character_left

spr_right character_right

Lo más fácil ahora es localizar en el evento de la flecha izquierda una acción para cambiar el sprite
al de la cara viendo a la izquierda spr_left, en forma similar se hace en la tecla derecha, sólo que se
usaría el sprite spr_right. Es muy importante que desmarquemos la caja de precise collision
checking en los dos sprites, también nos debemos asegurar que las bounding boxes de los sprites
sean las mismas. Para este fin, modificamos la máscara del sprite y usamos manual en las
bounding boxes, las especificaciones para cada sprite deben quedar como:

Objeto obj_character, evento tecla izquierda

9
Objeto obj_character, evento tecla derecha

En este momento GRABA tu juego y puedes probarlo ahora verás al personaje volteando de
acuerdo a la tecla de flecha que se presione (izquierda o derecha).

En juegos más avanzados probablemente se seleccione utilizar sprites animados, Por lo tanto
requerirás un sprite para cuando el personaje no esté en movimiento. También añadiríamos
sprites para cuando el personaje salte, caiga, dispare, etc… En este caso tú cambiarás el sprite en
diversos lugares del evento.

10
Las plataformas y paredes

Lo segundo que nosotros queremos mejorar son el background y las plataformas. Aquí nosotros
utilizaremos una técnica standard. En lugar de usar objetos para todos los elementos diferentes
de paredes y piso, usaremos una técnica llamada tiles. Tiles son piezas de imágenes de
background que son dibujadas en lugares específicos en el room. Ellos no tienen asociados
eventos. Lo bueno de ello es que son rápidos y utilizan poca memoria. Y podemos crear grandes
rooms sin la necesidad de grandes imágenes.

Para añadir tiles a tus rooms. Lo primero que necesitamos es una imagen de background que
pueda contener los tiles. Los tiles en una imagen de background tienen un tamaño fijo y una
pequeña cantidad (1-pixel) de borde entre ellos de tal forma que sea fácil de separar. Un pequeño
tile es proveído en la carpeta de resources, nosotros lo añadimos como un background
transparente y lo nombramos back_tiles. Cuando lo añadimos en el juego, en las propiedades del
background es importante señalar que será usado como un tile set y especificar el tamaño
correcto del tile y su separación como sigue:

Ahora, al crear el room, tú puedes dar click en la pestaña tiles. Y podrás seleccionar del conjunto
tile la sección que desees, crea tu room, pero no hay que olvidar que esto es sólo gráficos bonitos,
ellos no generan eventos o colisiones, por lo tanto nos vemos en la necesidad de utilizar objetos
tipo block como lo hicimos antes, los vamos a colocar encima de los tiles y desmarcamos la
propiedad Visible en el objeto obj_block con el fin de que los bloques sean invisibles, hay dos
tipos de blocks adicionales con dimensiones distintas que nos pueden servir para crear un room
más completo, los archivos son blockh y blockv dentro de la carpeta Resources, para usarlos no
olvides crear el sprite y el objeto para cada uno de ellos, así como especificar al objeto obj_block
como el Parent de ellos, con el fin de que tengan el mismo comportamiento. Añade el archivo sky
como background y colócalo como fondo del juego.

11
GRABA tu juego. Prueba trasladándote entre las plataformas, si funciona correctamente tenemos
lista la versión 2 nuestro archivo Plataformas_2.

12
Versión 3 Juego tipo “Plataformas”

Retoma el archivo Plataformas_2 y genera un nuevo archivo con el nombre Plataformas_3, para
hacer esto emplea la opción Save As…

Amenazas y Golosinas
Saltar alrededor de plataformas no es muy retador. Definitivamente necesitamos algo más de
retos. En esta versión vamos a enfocarnos a esto.

Monstruos

Primero vamos a añadir algunos monstruos. Vamos a crear dos monstruos, uno que se mueva de
izquierda a derecha en la plataforma y otro que vuele de izquierda a derecha. Si saltamos encima
del primer monstruo lo podemos apachurrar; pero al segundo será imposible, siempre lo
tendremos que evitar.

Vamos a iniciar con el primer monstruo, el que se mueve en la plataforma. Necesitaremos dos
sprites, uno donde el monstruo está viendo a la izquierda y otro donde el monstruo está viendo a
la derecha.

Sprite Imagen Archivo


spr_monsterl monsterl

spr_monsterr monsterr

Igual que en la versión anterior, debemos desmarcar el Precision collision checking y asegurarnos
que ambas imágenes tengan marcado en Bounding box Manual y el mismo tamaño.

13
Ahora vamos a crear el objeto monster, obj_monster. En el evento Create nosotros vamos a
especificar que se mueve a la derecha a una velocidad de 4.

Cada vez que golpea una pared invierte su sentido de movimiento

Para establecer el correcto sprite del monstruo nosotros usaremos el evento End Step. Este
evento sucede justo antes de que la instancia sea dibujada. Nosotros queremos establecer el

14
sprite correcto basado en el valor de la variable hspeed que indica la velocidad horizontal. Si es
menor que 0 nosotros pondremos el sprite del monstruo que voltea a la izquierda de forma
contraria el que voltea a la derecha.

Para evitar que los monstruos se caigan de las plataformas, vamos a introducir otro objeto, al cual
llamaremos marker. Este objeto obj_marker será un block azul invisible. Cada vez que un
monstruo lo toque, invertirá su sentido de movimiento. Tener marcadores invisibles es un buen
truco para lograr que las instancias desempeñen ciertas acciones en particular. Pudieras usar
marcadores para disparar, soltar bombas, etc.. No olvides crear el sprite spr_marker usa el archivo
marker y posteriormente crea el objeto obj_marker.

15
Ahora ve al room y coloca algunas instancias del monstruo (sobre las plataformas) y coloca
instancias del objeto obj_marker (no olvides que es un objeto invisible) que delimiten su
movimiento, Aun no programamos lo que sucede cuando el personaje colisiona con él, así que no
te preocupes si eso pasa en este momento. GRABA el juego y ejecútalo, verifica que el monstruo
se mueva en forma correcta.

Cuando el personaje choca con un monstruo, el personaje morirá. Pero actualmente, en muchos
juegos de plataformas, es válido que el personaje salte encima del monstruo y lo apachurre. Para
lograr esto requerimos algunas cosas, crear un sprite con la imagen del monstruo apachurrado.

Sprite Imagen Archivo


spr_monsterflat monsterflat

Dar de alta dos sonidos, uno para cuando destruyamos al monstruo y otro para cuando muera el
personaje, los archivos son:

Sonido Archivo
snd_killmonster Killmonster
snd_killcharacter killcharacter

Crear el objeto para el monstruo apachurrado, lo llamaremos obj_monster_dead, lo asociaremos


con la imagen del sprite spr_monsterflat y añadiremos los eventos Create y Alarm 0

16
Ahora vamos a añadir en el objeto del personaje obj_character el evento de colisión con el
monstruo, tenemos que checar si el personaje choca con el monstruo desde arriba, para lograrlo
usamos una acción llamada Test Expression donde la expression es vspeed > 0 && y < other.y+8, si
la evaluación de la expresión regresa verdadero si vspeed es mayor a 0 lo que significa que el
personaje se está moviendo hacia abajo, y el personaje está muy cerca de la parte superior del
monstruo.

17
Y debemos ejecutar el sonido snd_killmonster para enfatizar que apachurramos al monstruo,
incrementamos en 50 puntos el score paramos el movimiento y cambiamos la instancia por el
monstruo apachurrado obj_monster_dead.

18
19
De lo contrario Ejecutamos el sonido de que el personaje “muere” Play sound snd_killcharacter,
esperamos 1000 milisegundos Sleep 1000 miliseconds y reestablecemos el room Restart the
current room.

20
Ahora GRABA TU JUEGO. Y ejecútalo, trata de apachurrar a los monstruos y de chocar con ellos,
verifica que el funcionamiento sea correcto, es decir, se debe de escuchar los sonidos, incrementar
el score cuando lo apachurras, etc.

El segundo monstruo es muy sencillo, Procedemos de la misma manera que con el monstruo
anterior, sólo que en el evento de colisión del personaje con el monstruo volador no se prueba
nada, ya que este monstruo no se pondrá aplastar.

Necesitaremos dos sprites, uno donde el monstruo está viendo a la izquierda y otro donde el
monstruo está viendo a la derecha.

Sprite Imagen Archivo


spr_flyingl flyingl

spr_flyingr flyingr

Igual que con el monstruo anterior, debemos desmarcar el Precision collision checking y
asegurarnos que ambas imágenes tengan marcado en Bounding box Manual y el mismo tamaño
en cada sprite.

21
Ahora hay que crear el objeto obj_flyer, asociarlo con el sprite que indique su dirección de
movimiento inicial (sólo de arranque), la definición del objeto es exactamente igual al monstruo
anterior, respetando las acciones para cada uno de los eventos, al final debe quedar:

Ahora ve al room y coloca algunas instancias del monstruo entre las plataformas (ya que es un
monstruo volador) y coloca instancias del objeto obj_marker (no olvides que es un objeto
invisible) que delimiten su movimiento, Aun no programamos lo que sucede cuando el personaje
colisiona con él, así que no te preocupes si eso pasa en este momento. GRABA el juego y
ejecútalo, verifica que el monstruo se mueva en forma correcta.

Ahora vamos a añadir en el objeto del personaje obj_character el evento de colisión con el
monstruo obj_flyer, no hay que evaluar nada, ya que este monstruo no podrá ser aplastado, lo
único que pondremos es la ejecución del sonido de que el personaje “muere” Play sound
snd_killcharacter, esperamos 1000 milisegundos Sleep 1000 miliseconds y reestablecemos el
room Restart the current room.

22
Ahora GRABA TU JUEGO. Y ejecútalo, trata de chocar con un monstruo volador y verifica si el
personaje “muere”.

Trampas

Muchos juegos de plataformas requieren tener cuidado al momento de saltar para evitar caer en
las trampas. Una caída en una trampa normalmente “mata” al personaje. Para este fin,
añadiremos un nuevo objeto y lo llamaremos obj_death. Este objeto tendrá asociado un sprite
con una imagen de un block rojo spr_death, el objeto no será visible. Podemos colocar instancias
de este objeto en la trampa, (en el background back_tiles viene el dibujo de unas púas que se
pueden colocar en la trampa, para hacerla lucir mejor). En el evento de colisión del personaje con
este objeto obj_death, se deberá ejecutar un sonido Play sound, esperar un poco Sleep y
reinicializar el room Restart the room.

Crear el sprite spr_death

23
Crear el objeto obj_death, no olvides desmarcar la caja de chequeo de visible

Y programamos la colisión del personaje con el objeto obj_death

Podemos también hacer trampas para que caiga indefinidamente (es decir hoyos, sin usar el
objeto obj_death), en este caso, añadiremos las mismas acciones en el evento Outside Room (se
encuentra en other events) del personaje, incluiremos una evaluación y > room_height para
asegurarnos que el personaje realmente cayó, o saltó fuera del área de juego.

24
Recolectando puntos

Muchos juegos de plataformas tienen mecanismos para que el jugador pueda recolectar puntos.
Normalmente se puede recoger algunos objetos o atrapar algunas cosas. En nuestro ejemplo el
jugador podrá recolectar champiñones. Por lo tanto tendremos que crear un objeto champiñón.
Para darle un poco de variación, el sprite del champiñón contiene 10 diferentes sub-imágenes de
champiñones.

Sprite Imagen Archivo


spr_mushroo mushroom_strip10
m

El objeto champiñón obj_mushroom toma una imagen en forma aleatoria al ser creado usando la
acción Change Sprite, ya que establecemos un random(10), random(10) es una función que
regresa un valor pseudoaleatorio de 0 a un valor abajo del argumento (en nuestro caso de 0 a 9),
Nosotros establecemos la velocidad en 0 para parar el ciclo entre las subimágenes.

25
En el evento de colisión del personaje con el objeto champiñón nosotros ejecutamos un sonido
Play sound, destruimos el otro other objeto Destroy the instance (other) (es decir, el champiñón)
y añadimos 10 puntos al score Set the score relative to 10.

Primero hay que añadir el sonido mushroom, darle el nombre de snd_mushroom, ahora hay que
abrir el objeto obj_character, añadir un evento de colisión con el obj_mushroom y añadir las
acciones que ya mencionamos.

Añade champiñones en las diferentes plataformas, GRABA tu juego y ejecútalo, verifica que el
score se incremente.

26
Siguiente Nivel

Por supuesto que hay que diseñar una forma de terminar el nivel, para que el jugador se pueda
mover al avanzar al siguiente nivel. Para este fin vamos a crear un objeto al que llamaremos
obj_levelexit. Cuando el personaje llegue a él, lo llevará al siguiente nivel.

Primero hay que crear el sprite, usaremos el archivo level

Sprite Imagen Archivo


spr_level level

Ahora, hay que crear el objeto obj_levelexit, no lleva ningún evento

27
Añadimos el sonido de fin de nivel, usamos el archivo level y le proporcionaremos el nombre
snd_finishlevel.

Ahora vamos al objeto obj_character y añadimos un evento de colisión con el objeto


obj_levelexit, y las acciones que realizaremos son ejecutar el sonido Play sound, esperar un poco
Sleep, evaluar si existe un room adicional If next room exists ir al nuevo room Go to next room si
no es así Mostrar la lista de los más altos scores Show the highscore table y reinicializar el juego
Restart the game.

Diseña dos o tres rooms adicionales, GRABA tu juego, ya tenemos lista la versión 3 de nuestro
juego Plataformas_3.

28
Versión 4 Juego tipo “Plataformas”

Retoma el archivo Plataformas_3 y genera un nuevo archivo con el nombre Plataformas_4, para
hacer esto emplea la opción Save As…

Más Movimientos
Nuestro juego actual de plataformas sólo tiene algunas posibilidades limitadas de movimiento. El
personaje se puede mover hacia la izquierda y la derecha y puede saltar. Para hacer cosas más
interesantes, vamos a añadir algunas posibilidades.

Rampas

Es interesante hacer que el jugador pueda subir rampas inclinadas (bajar es en automático porque
está cayendo). Para este fin se reemplaza el código de la flecha izquierda

En lugar de simplemente verificar que la posición a la izquierda es libre de colisión nosotros


también evaluamos si una posición 8 pixeles más alto es libre de colisión. Si es así movemos al
personaje y utilizamos la acción de aterrizaje para moverlo hacia abajo a la posición de contacto.
Las acciones dentro del evento <Left> en el objeto obj_character quedan como se muestra:

29
Hacer lo mismo para la tecla <Right>,

30
Escaleras

La gente siempre quiere escaleras en los juegos de plataformas a través de las cuales el personaje
pueda moverse de una plataforma a otra. Una escalera puede ser representada por un delgado
block vertical que es invisible (la escalera o liana son usadas para trepar, y se dibujan utilizando
tiles) y no son sólidas. Cuando el personaje no está en contacto con la escalera, el movimiento
debe ser como lo tenemos. Pero cuando esté en contacto con la escalera las cosas son diferentes.
Primero, el personaje no debe caer. Por lo tanto en el evento step nosotros tenemos que hacer un
cambio para este efecto añadiendo algunas acciones como son establecer la velocidad vertical y la
gravedad en 0 cuando esté en contacto con la escalera. También debemos establecer el sprite
spr_clibing.

Dar de alta el sprite spr_ladder, usar el archivo ladder

31
Ahora hay ue crear el objeto obj_ladder, hay que asociarlo con el sprite spr_ladder

Ahora, abrimos el objeto obj_character, seleccionamos el evento Step y añadimos las acciones
que mencionamos anteriormente.

32
La segunda cosa que necesitamos cambiar es el evento para la flecha arriba up. Cuando el
personaje está en una escalera, la flecha arriba lo moverá hacia arriba en lugar de saltar. Para
lograr esto necesitamos añadir unas pocas acciones. Primero evaluamos si el personaje está en
contacto con una escalera, de ser así, lo movemos un poco hacia arriba. Nosotros usamos acciones
similares para la flecha abajo down.

33
Para la flecha abajo down

Coloca lianas en tu room (usando tiles), no olvides colocar instancias del objeto obj_ladder sobre
ellas. GRABA tu juego y ejecútalo, verifica que el personaje pueda subir y bajar las lianas.

34
Usando una vista

Siempre hemos mostrado el room completo. Pero muchos juegos de plataformas no lo hacen
así, como estrategia sólo muestran una parte del room, el área cercana al personaje que
controlamos. Esto hace que el juego sea más interesante porque el jugador debe tratar de
encontrar su camino entre las plataformas, también se pueden ocultar premios en lugares de
difícil acceso del room.

Afortunadamente esto es extremadamente simple de realizar en Game Maker. Cuando


diseñamos el room, damos click en la pestaña views. Seleccionamos Enable the use of Views para
iniciar a usar las vistas. Selecciona la primera vista y marca la caja Visible when room start para
asegurarse que esta vista pueda ser vista desde el inicio del juego. Establecemos el valor de 300
como el ancho width y 200 de altura height ( o bien utiliza las medidas que a ti te agrade).(Como
nosotros queremos que la vista siga al personaje, no es necesario especificar la posición izquierda
(left) y superior (top) de la vista en el room View in room. También como nosotros sólo queremos
una vista, no necesitamos especificar la posición x y y en el Port on screen. Más abajo podemos
indicar cuál es el objeto a seguir. Aquí seleccionamos al personaje obj_character. La vista ahora se
moverá en forma automática manteniendo al personaje enfocado. Nosotros no queremos que el
personaje esté muy cerca del borde, para este fin nosotros establecemos los valores de Hbor y
Vbor en 64. Esto hará que siempre tengamos un área de 64 pixeles visible alrededor del personaje.
Finalmente, para conseguir un movimiento suave de la vista, nosotros establecemos la velocidad
Hsp y Vsp en 4 . (Esto nos brinda un efecto muy agradable al iniciar el juego porque el personaje
aparece lentamente en la vista). Las especificaciones en la pestaña Views deben aparecer como:

35
Tenemos una buena vista pero la pantalla donde suceden las cosas es demasiado pequeña.
Para solucionar esto, en el lado izquierdo de la pantalla selecciona Global Game Setting y
establece una escala de 200 en Fixed scale (in %)

Modifica los parámetros de la pestaña Views en cada uno de los rooms. GRABA tu juego, ya
tenemos lista la versión 4 de nuestro juego Plataformas_4.

36
Versión 5 Juego tipo “Plataformas”

Retoma el archivo Plataformas_4 y genera un nuevo archivo con el nombre Plataformas_5, para
hacer esto emplea la opción Save As…

Algunos toques adicionales


Disparando a los monstruos

El siguiente paso es habilitar al jugador a disparar a los monstruos. Para hacerlo más interesante,
el jugador deberá primero encontrar algunas municiones para habilitar la posibilidad de disparar.
Para lograr esto, vamos a introducir una variable llamada ammo que indique que tanta munición
tiene el jugador. Añadimos el evento Create al objeto obj_character y establecemos la variable
ammo en 0 Set variable ammo to 0.

Vamos a añadir un sprite con la imagen ammunition, darle el nombre de spr_ammunition, ahora
crea el objeto obj_ammunition, el cual no tendrá ninguna especificación, sólo asocia el sprite
correspondiente.

37
Regresamos al objeto obj_character y añadimos un evento de colisión con el objeto
obj_ammunition, las acciones que colocaremos aquí son añadir 10 a la variable ammo (no olvide
marcar la caja de Relative) y destruir la instancia .

Lo siguiente que necesitamos es añadir un sprite para la bala, usar el archivo de imagen bullet y
darle el nombre de spr_bullet.. Ya teniendo el sprite hay que crear el objeto obj_bullet, añadir un
evento de colisión con el objeto obj_block, donde la acción que realizaremos es destruir la
instancia Destroy the instance.

38
Ahora añadimos el evento de colisión con cada uno de los monstruos, empezamos con el objeto
obj_monster, las acciones que realizaremos son: ejecutar el sonido snd_killmonster, incrementar
el score en 50 puntos, Destruir al monstruo y la bala, la especificación debe quedar como:

39
Y la colisión con el objeto obj_flyer, es idéntica, utiliza los mismos parámetros que con el objeto
obj_monster.

Y por último añadimos el evento Outside Room, donde la acción que colocaremos es Destroy the
instance.

Cuando el usuario presione la barra espaciadora una instancia del objeto obj_bullet será creada,
asumiendo que hay municiones, y el valor de la variable ammo será decrementada en 1. Pero hay
una cosa importante que no podemos olvidar, la bala será disparada en la dirección en que el
personaje esté volteando. Para este fin, nosotros checamos el valor de la variable sprite_index.
Esta variable contiene el índice del sprite para el objeto del personaje.

40
Por lo tanto abre el objeto obj_character y añade el evento Key Press y selecciona <space>, hay
que añadir las siguientes acciones:

41
Un panel para el score

El jugador ahora tiene un score y municiones. Nosotros también podemos proporcionarle algunas
vidas. Chocar con un monstruo o caer en una trampa costará una vida. Hay un mecanismo fácil
para el control de vidas en Game Maker. Vamos a crear un objeto especial al que llamaremos
obj_controller, no necesitará de un sprite, en su evento Create estableceremos el número de
vidas en 3, Siempre que el jugador “muera” decrementaremos el número de vidas. En el evento
No More Lives mostraremos la tabla de los más altos scores y reinicializaremos el juego.

42

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy