Game Maker Studio

Tutorial: Pendientes y movimiento

Cuando se desarrollan los primeros juegos de plataformas, lo normal es familiarizarse con los conceptos de gravedad y colisión en suelos totalmente horizontales. Sin embargo, a poco que uno comienza a desarrollar entornos más complejos, lo primero que se echa de menos es que nuestro personaje pueda subir o bajar cuestas sin que éste se atasque cada vez que hay un desnivel de 1 píxel o más.

nopasa

La solución está en definir una rutina que compruebe no solo que la posición a la izquierda o derecha de donde está el personaje esté vacía, sino que también sea flexible cuando existe un desnivel de 2, 4, 6 píxeles. Prueba a colocar el siguiente código en el evento Right del jugador:

if place_free(x+4,y){
   x+=4
}else{
   if place_free(x+4,y-6){
      x+=4
      y-=6
      move_contact_solid(270,6)
   }
}

Lo que hace el código es que si la posición a la derecha del jugador (a 4 píxeles de distancia) no está libre, comprueba si está libre la posición a la derecha del jugador pero a -6 píxeles de altura de donde se encuentra ahora. Esto lo que permite es que haya un desnivel (un escalón, podríamos decir) de hasta 6 píxeles de altura. Si se cumple, lo que hará el jugador será saltar a la siguiente posición a la derecha pero subiendo ese desnivel que hay frente a él. Si lo que se desea es que funcione también cuando el personaje va hacia la izquierda, solo habría que cambiar los + en rojo que hay en el código por el signo -, y copiar todo en el evento Left. Aquí os dejo un ejemplo gráfico de cómo queda el resultado:

sube

Ahora lo que queda en el lado del desarrollador es calcular cuál va a ser el escalón máximo que va a permitirse. Cuidado con aumentar mucho el número: podría volverse tan flexible que el personaje subiese hasta paredes de varios píxeles, lo que quedaría un poco extraño aparte de ser confuso para el jugador.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s