Tengo el problema con el speed mi personaje se mueve a 400 de speed pero el problema es que me gustaria que comprobara si ahi una pared entre el y el personaje....
ahora el problema es el siguiente, que como es un speed avanza de 400 pixeles en 400 pero quiero ver como comprobar si adelante de el axiste una pared para que se pare por decir en el pixel 250 (si teoricamente estubiera una pared a esa distancia)
[gml]if (Movimiento==true)
{
Objetivo=instance_nearest(x,y,Obj_Persona)
direction=point_direction(x,y,Objetivo.x,Objetivo.y)
if(distance_to_object(Objetivo)<400)
{
speed=distance_to_object(Objetivo)
}
else
{
speed=400
}
}
else
{
speed=0
}[/gml]
Te puedes mover pixel por pixel hasta que el objeto detecte colisión. Pero serían muchas iteraciones.
Para hacerlo más eficiente puedes revisar la colisión con una línea trazada entre el punto de partida y el punto meta.
Puedes estimar el punto de colisión de esta forma
https://yal.cc/gamemaker-collision-line-point/
También puedes hacer el movimiento en varios pasos. Comienza con pasos grandes y ve reduciendo la distancia hasta encontrar el punto de colisión. Similar a la técnica de búsqueda binaria.
https://es.wikipedia.org/wiki/Búsqueda_binaria