Hola, Espero que puedan ayudarme Por Favor, bueno estoy haciendo un juego de plataformas con trampas, bastante basico con los diseños...

Bueno, tengo un objeto que es una pared con espinas y segun la distancia que hay entre el objeto y el jugador, este objeto se caera para poder matar al jugador.

El codigo es el siguiente: Lo que quize hacer es que compruebe, si es que el jugador esta arriba del objeto, este no caera. Solo si esta abajo de el.

if not distance_to_point(x,obj_player.y) >=1

{if distance_to_point(obj_player.x,0) <=64 
{ if distance_to_point(x,obj_player.y) <= 300
{down = 1;
}
}
}


Pero el problema esta, que cuando bajo a otro piso por asi decir, y hay un objeto de estos, ya no cae.

Una imagen de ejemplo:



¿Por que pasa esto? Quizas sea algo sencillo de hacer, pero soy nuevo en GM y necesito ayuda por favor!

Muchas gracias por leer!

Un saludo.

Estabas cerca  :); esto te ayudara:

// Esto va en el objeto que cae

if y<obj_player.y
{
if distance_to_point(obj_player.x,y)<=1
{down = 1;}
}
if down==1 y+=4; // velocidad de caida del objeto


si no lo entiendes va un archivo adjunto de ejemplo para que lo observes

The Terror of Death

Lo que puedo ver es que haces muchas comprobaciones, y en una de ellas tenes el valor de Y en 0, es decir que va a comprobar si la distancia de la posición X del personaje y la posición Y = 0 es menor o igual que 64, la verdad a eso no le encuentro mucho sentido.

Tratá de usar un solo distance_to_point con algo similar a esto:

[gml]
if (distance_to_point(obj_player.x,y) <= 160 && distance_to_point(obj_player.x,y) > 32 ) {
    down = 1;
}
[/gml]

Los valores los usé teniendo en cuenta la cantidad de cuadros que hay en la captura que pusiste, es decir, si miden 32, 5 cuadros serían 160. Lo que hice fue comprobar la distancia X del personaje pero manteniendo la distancia Y del objeto a caer, es decir, si la distancia es menor o igual que 160 pero mayor que 32 (para que no caigan cuando estés en el piso de arriba) se active down.