Hola gente, yo de nuevo. EL otro día me puse a pensar que todos los juegos que hice fueron sobre un suelo recto.
Entonces me puse a buscar tutoriales en internet y encontre algunas cosas interesantes para poder caminar sobre cualquier tipo de suelo, el problema es que en todos los tutoriales el resultado queda como la primera imagen de abajo, y lo lógico sería el que personaje se incline dependiendo el angulo del suelo con el que esta colisionando.
En las siguientes imágenes entenderán a lo que me refiero.
(http://k32.kn3.net/D/4/B/E/1/3/3A4.jpg)
¿Es posible hacer que el personaje se adapte al terreno? ¿Por que no se hasta que punto es limitado Gamemaker.
Si, pero con algunas limitaciones. El mask del personaje debe ser circular.
también tienes que obtener a qué dirección va el slope.
Aquí un código (para cuando vás a la derecha):
[gml]var i,r;
r=0
for(i=-90;i<90;i+=1){
if place_free(x+lengthdir_x(argument0,i),y+lengthdir_y(argument0,i)) then {r=i;break}
}
return r[/gml]
y cuando vás para la izquierda:
[gml]var i,r;
r=0
for(i=270;i>90;i-=1){
if place_free(x+lengthdir_x(argument0,i),y+lengthdir_y(argument0,i)) then {r=i;break}
}
return r[/gml]
se ingresa un solo valor: la longitud del paso
devuelve la dirección. (no usarlo cuando estás en el aire, para eso podes verificarlo con place_free)
la verdad es que este tema es complicado.
Aquí te dejé un ejemplo: