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.



¿Es posible hacer que el personaje se adapte al terreno? ¿Por que no se hasta que punto es limitado Gamemaker.

#1 Diciembre 02, 2014, 09:56:11 PM Ultima modificación: Diciembre 02, 2014, 09:57:58 PM por TheSandBoxMKG
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: