¿Como se hace…? 3 minitutoriales de Game Maker
Cuando estamos con un proyecto de nuestro videojuego, a veces nos preguntamos como hacer según que cosas que necesitamos programar. Una simple búsqueda en nuestro amigo Google nos permite encontrar la solución, así que he recopilado algunas de estas preguntas aquí. Estos son sólo algunos ejemplos, pequeños tutoriales, así que a de ahora en adelante haré algunos recopilatorios de estas dudas.
¡Empezamos!
Como se hace un efecto de parpadeo
¿Queréis tener este efecto en un juego? Puede ser un texto, una imagen, un cambio de tamaño…
En este caso jugamos con la transparencia de un texto, pero puede ser aplicable con cualquier propiedad de un objeto. Supongo que estamos pensando en una variable y usar el evento Step para subir el valor de la variable de 0 a 1, y cuando llegue a 1 bajar a 0. Pero eso ya lo hacen ¡las matemáticas!
Fijaros en este gráfico:
¿No es lo que estamos buscando? Movernos entre un rango de valores. Explicamos brevemente como hacerlo.
Creamos un objeto obj_alarm
Lo llamo así pero no nos confundamos con los eventos y acciones de alarma. Necesitamos una variable a nivel de objeto, así que la creamos en el evento Create . Yo lo he llamado
intermittence = 0
.
Luego en el evento Draw poner el siguiente código:
var alpha; alpha = abs(sin(intermittence)); intermittence += 0.05; show_debug_message(alpha); draw_text_colour(x, y, "LEVEL 01", c_red, c_red, c_red, c_red,alpha);
Con esto conseguimos que la variable alpha tenga valores entre 0 y 1, utilizando la función sin() y abs() para que no tenga valores negativos. Dejo la función show_debug_message() para que puedas ver el valor que va tomando. 5 líneas de código para conseguir este efecto. El proyecto lo podéis descargar aquí.
Tutorial efecto intermitencia Game Maker
Como hacer un efecto Shake o temblor
En GameMakerTutorials puedes encontrar muchos tutoriales muy útiles creados por Shaun Spalding, que ahora es el Community Manager de YoYoGames. Uno de los tutoriales es como hacer un temblor en nuestro juego. Os dejo el vídeo y a continuación explico el código por si prefieres leerlo:
Lo bueno de este ejemplo es que solo tienes que configurar el objeto, lo llamas y ya está. Vamos a ver los pasos.
Creamos el objeto obj_shake
Añadimos un evento Create , y añadimos una acción Set Alarm
con un valor de 10. Este valor será cuanto queremos que dure el efecto.
Añadimos un evento Step , y en él escribimos el siguiente código.
view_xview = random_range(-2, 2); view_yview = random_range(-2, 2);
Como vemos, necesitamos tener una vista activada para que funcione. Los valores de -2 y 2 es lo fuerte que queramos ese efecto, así que si el valor es más grande el efecto será mayor.
Para terminar, en el evento Alarm , la que hayamos elegido, entre 0 y 7, y el siguiente código:
view_xview = 0; view_yview = 0; instance_destroy();
Como vemos, la vista vuelve a su origen y luego destruye el objeto. Creo que tiene un problema, y es si la room es muy grande y la vista se ha movido por algún objeto (por ejemplo un personaje en un juego de plataformas). Así que habría que guardarse su valor y luego volver al valor que hemos guardado.
Como poner barra de vida a un enemigo en Game Maker
Sabemos que en Game Maker Studio tenemos una variable global llamada health
, dónde podemos controlar una barra de energía. Tenemos acciones específicas que nos ayudan a añadir o quitar energía, dibujarla o incluso un evento que nos permite detectar cuando llega a o, el evento No More Health.
Pero aquí tenemos un pequeña problema: al ser una variable global, solo podemos controlarlo en un sólo objeto (porque se controla globalmente). Si queremos mostrar una barra de energía en varios objetos, como por ejemplo en todos los enemigos, no podemos usar la variable global que viene del sistema. Veamos un ejemplo.
Creamos un proyecto nuevo, dónde haremos un personaje que se mueva y su barra de vida personalizada. El sprite de movimiento lo sacamos de este enlace
La parte del movimiento del personaje no comento como lo hago, pero lo podéis ver en el proyecto que hay al final para descargar. Ahora necesitamos dos variables, una con la máxima energía que puede tener y otra con la energía que tiene o lo queda. En el ejemplo verás que podemos usar cualquier valor de energía, no solo hasta 100, que es lo más fácil para mostrar en porcentaje. la variable max_energia
le he puesto 5000 (puede cambiarse en cualquier momento, como por ejemplo cuando sube de nivel el personaje en un juego RPG), y la variable energia
le he puesto un número aleatorio (por debajo de max_energia
).
Ahora en el evento Draw añadimos el siguiente código (después de la acción Draw Self
para que dibuje el sprite).
var pc; pc = (energia / max_energia) * 100; draw_healthbar(x, y - 20, x + 50, y - 10, pc, c_black, c_red, c_lime, 0, true, true)
Como vemos, ya existe una función para dibujar la barra de salud en Game Maker, así que sólo hay que hacer un pequeño cálculo antes para saber el porcentaje entre el total de energía y el que tenemos ahora, para ponerlo en la función. Luego sólo hay que colocar la barra en la posición que queremos, teniendo en cuenta que puede ser cualquier tamaño y la dibujamos como si fuera un rectángulo, con posiciones x1
, y1
, x2
, y2
.
Luego elegmos varios colores y ya la tenemos. El proyecto se puede descargar aquí
Tutorial barra de vida Game Maker
Conclusión final
He mostrado varios tutoriales para hacer cosas en Game Maker Studio, de manera que podemos resolver algunas preguntas que nos hacemos a la hora de programar nuestros juegos. ¿Tienes más preguntas sobre como hacer según que cosas en Game Maker? Puedes decirla en los comentarios.
como hacer un juego de pregunta an vgame maker