Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: matiascarpello en Marzo 28, 2015, 06:18:37 PM

Título: Detectar colision sobre eje X
Publicado por: matiascarpello en Marzo 28, 2015, 06:18:37 PM
Hola gente, como hago para hacer que cuando el personaje colicione contra un bloque de frente el nivel se reinicie pero si el personaje esta arriba del bloque que no pase nada?  Al bloque le puse como parent el obj_suelo y puedo caminar sobre el y para que me detecte si coliciono de frente contra el puse este código en un step  if place_meeting(x+1,y,obj_wall) {room_restart()} Con este código supuestamente solo tendría que reiniciarse el nivel si coliciono de frente sobre el muro, pero el problema es que también se reinicia si intento caminar sobre el.
Título: Re:Detectar colision sobre eje X
Publicado por: 3dgeminis en Marzo 29, 2015, 01:58:29 AM
Podrias usar instance_position para poner el lugar exacto de colision
Título: Re:Detectar colision sobre eje X
Publicado por: elviskelley en Marzo 29, 2015, 04:16:08 PM
Tu codigo inicialmente esta bien, solo que debes tomar en cuenta dos cosas, uno el eje del sprite, y el otro la ubicacion Y del object.
Si el eje del sprite esta en 0,0,  El X-1 estara colisionando hacia la izquierda, pero hacia la derecha seria X+(sprite_width+1) para que detecte la colicion hacia la derecha.
Si el eje es central seria asi; X+((sprite_width/2)+1)  tambien hay que verificar la posicion Y para evitar que la colision sea detectada estando sobre el. Algo asi; si el eje del sprite esta normal es decir 0,0 seria; and (y-2 < other.place_meeting(x+1,y,obj_wall)) (ojo codigo no probado, en todo caso verifica la ID) la idea es que verifiques seguns tus ejes y la posicion. ya yo esto lo he hecho antes en Geometrix 2.  Lo malo es que tu usas  :GMS: y ese editable esta en  :GM6: no te sirve.