Hacer un juego de plataformas con scripts en GameMaker Studio

By | 25 agosto, 2018

Saludos. Estos scripts son compatibles con GameMaker Studio 1 y 2, y los he elaborado para crear un juego de plataformas rápidamente con este programa. 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).

Scripts

Jugador_Inicializacion – Inicializa las variables para el objeto del jugador (personaje).

Evento: Create

// 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;

 

Jugador_Step – Comprueba las colisiones con las plataformas y actualiza la velocidad (gravedad).

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;
      }
   }
}

 

Jugador_Mover_Izq – Mueve el jugador a la izquierda.

Evento: (a tu preferencia)

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

 

Jugador_Mover_Der – Mueve el jugador a la derecha.

Evento: (a tu preferencia)

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

 

Jugador_Saltar – Hace que el jugador salte.

Evento: (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 necesarios están marcados *