Hola!
Pues antes de preguntar (y que aun no domino GML) le he estado dando vueltas. Y también me he mirado el tema de funciones y tal. Pero claro, no sé cual aplicar o en que evento situarla.
Quiero que el personaje al parar se sitúe correctamente en el grid (32x32). De esa forma, no se queda trabado entre los muros del laberinto. Hace tiempo me salio por medio de D&D. Pero con GML no me aclaro.
En el evento step he creado este code:
if keyboard_check(vk_left) then x-=4;
if keyboard_check(vk_right) then x+=4;
if keyboard_check(vk_up) then y-=4;
if keyboard_check(vk_down) then y+=4;
Y por lo que he leído hay que utilizar la función:
move_snap(hsnap,vsnap)
En otro vídeo que he visto primero lo chequean con:
if (place_snapped(32,32))
Pues todo esto no se como ubicarlo para que funcione :-[
Una forma robusta de hacer que el personaje se alinee cuando deje de moverse sería poniendo en el evento Step:
[gml]
if keyboard_check(vk_left) then x-=4;
if keyboard_check(vk_right) then x+=4;
if keyboard_check(vk_up) then y-=4;
if keyboard_check(vk_down) then y+=4;
if ((!keyboard_check(vk_left))
&& (!keyboard_check(vk_right))
&& (!keyboard_check(vk_down))
&& (!keyboard_check(vk_up)))
{
if (!place_snapped(32,32)) // Aqui verifica, "Sí no está alineado" en la grid de 32x32
move_snap(32,32); //entonces lo alineamos a la grid de 32x32
}[/gml]
Muchas gracias, Black.