Hacer un juego de plataformas con scripts en GameMaker Studio

By | 25 agosto, 2018

 

Aquí les comparto unos scripts para hacer un juego de plataformas muy simple en GameMaker Studio 1 y 2. Los scripts se pueden agregar fácilmente con las acciones de Execute Script o Execute Code, en Drag & Drop, adentro del objeto del personaje controlable (jugador).

Script de inicialización

Este script inicializa las variables para el jugador controlable. Es para el evento Create.

NOTA: Debes cambiar el “obj_plataforma” por el objeto que quieres que se chequen las colisiones. NO debe ser sólido.

// Evento "Create" del jugador

// Gravedad del jugador por defecto
gravedad = 0.5;

// La velocidad máxima con la que puede caer el jugador.
max_velocidad_v = 12;

// La cantidad de pixeles que avanza el jugador al caminar
rango_caminar = 4;

// La potencia del salto. Se usa un valor negativo para la velocidad vertical
potencia_salto = -10;

// El objeto con el que se deben checar las colisiones
// NOTA: El objeto NO debe ser sólido!
objeto_plataforma = obj_plataforma;


// --Otras variables--
// Velocidad vertical (se actualiza automaticamente)
velocidad_v = 0;

Script de step

Este script comprueba las colisiones con las plataformas y actualiza la velocidad (gravedad). Es para el evento Step.

// Evento "Step" del jugador

// Actualizar la velocidad con la gravedad
velocidad_v += gravedad;

// Limitar la velocidad
if (velocidad_v > max_velocidad_v) {
   velocidad_v = max_velocidad_v;
} // Checar que no hayan plataformas al caer o al saltar (pixel por pixel) repeat(abs(floor(velocidad_v))) { if (velocidad_v < 0) { if (!place_meeting(x, y-1, objeto_plataforma)) { --y;
} else { velocidad_v = 0; break; } } else { if (!place_meeting(x, y+1, objeto_plataforma)) { ++y;
} else {
velocidad_v = 0; break; } } }

Script de movimiento (izquierda)

Este script mueve el jugador a la izquierda. El evento en el que debe ir es a tu preferencia.

repeat(rango_caminar) {
   if (!place_meeting(x-1, y, objeto_plataforma)) {
      --x;
} }

Script de movimiento (derecha)

Este script mueve el jugador a la derecha. El evento en el que debe ir es a tu preferencia.

repeat(rango_caminar) {
   if (!place_meeting(x+1, y, objeto_plataforma)) {
      ++x;
} }

Script de salto

Este script hará que el jugador salte. El evento en el que debe ir es a tu preferencia.

if (place_meeting(x, y+1, objeto_plataforma)) {
   velocidad_v = potencia_salto;
}

En total son 5 scripts. Para hacerlos funcionar, solamente hay que modificar el primer script de Jugador_Inicializacion para ajustar el objeto NO-sólido que servirá para comprobar las colisiones (plataformas), además de otros valores opcionales.

Estos scripts usan sus propias variables para actualizar la velocidad y la gravedad, sin usar variables predefinidas como gravity o vspeed.

Descarga del ejemplo

Archivo editable para GameMaker Studio 1 y 2

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *