Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Ziliock en Noviembre 28, 2014, 05:38:53 PM

Título: Problema minusculo llevando un objeto hacia otro
Publicado por: Ziliock en Noviembre 28, 2014, 05:38:53 PM
Necesito que en determinado momento un objeto se dirija hacia la posicion X de otro objeto,no a la posicion absoluta(X,Y)Para eso en MoveTowards escrivi en la zona de X : obj_player.x
Lo raro es que actuava como si hubiera introducido Y en lugar de X,logicamente luego cambie la X por Y y funciona como yo queria.Lo que sucede es:
Es facil hacer que un objeto se detenga cuando impacte con otro,por eso,no tenia problemas cuando hacia que un objeto se mueva en la direccion absoluta hacia otro(X,Y)pero si solo uso la X,el objeto no siempre impactara con el otro,por lo que sera dificil hacer que se detenga¿Conocen alguna manera de solucionar este problema sin usar Codes ni Scripts?O al menos explicando muy detalladamente donde devo ponerlos y que hacen.Desde ya,gracias por leer
Título: Re:Problema minusculo llevando un objeto hacia otro
Publicado por: Xizotono en Noviembre 28, 2014, 06:50:20 PM
¿Que quieres hacer exactamente?

Segun entiendo dices que el obj1 se dirije al player y al chocar se detiene (x,y). Ahora bien, solo haciendo que se mueva a X (y no) pues que se detenga ¿no?, no se cuando quieres que se detenga pero si es cuando alcance la X del objeto seria algo tipo if x = obj_player.x { ACCION DETENER }.

Si no te refieres a eso pues no te entiendo :L
Título: Re:Problema minusculo llevando un objeto hacia otro
Publicado por: Ziliock en Noviembre 28, 2014, 06:58:29 PM
Cita de: Xizotono en Noviembre 28, 2014, 06:50:20 PM
¿Que quieres hacer exactamente?

Segun entiendo dices que el obj1 se dirije al player y al chocar se detiene (x,y). Ahora bien, solo haciendo que se mueva a X (y no) pues que se detenga ¿no?, no se cuando quieres que se detenga pero si es cuando alcance la X del objeto seria algo tipo if x = obj_player.x { ACCION DETENER }.

Si no te refieres a eso pues no te entiendo :L
Bueno,gracias por responder.No queria dar una expicacion detallada porque eso suele repeleer las respuestas.Pero si me olvide de algo.Quiero que Objeto A se detenga justo cuando este exactamente arriba de Objeto B.
Título: Re:Problema minusculo llevando un objeto hacia otro
Publicado por: Xizotono en Noviembre 28, 2014, 07:21:28 PM
Para indicar si objeto A esta arriba de B (Exacto) seria :
if obj_a.y < obj_b.y and obj_a.x = obj_b.x { ACCION DETENER }

La accion detener podria ser una simple variable (poderseguir) y sea 0 o 1 segun pueda o no seguirlo.
Título: Re:Problema minusculo llevando un objeto hacia otro
Publicado por: Ziliock en Noviembre 29, 2014, 03:04:55 AM
Cita de: Xizotono en Noviembre 28, 2014, 07:21:28 PM
Para indicar si objeto A esta arriba de B (Exacto) seria :
if obj_a.y < obj_b.y and obj_a.x = obj_b.x { ACCION DETENER }

La accion detener podria ser una simple variable (poderseguir) y sea 0 o 1 segun pueda o no seguirlo.
Ghhh....Muchas gracias! Veamos....En el Evento Step,introdusco como nombre variablee...No creo que eso no es.Introdusco eso en un Script que se ejecute en el evento Step?
Título: Re:Problema minusculo llevando un objeto hacia otro
Publicado por: Xizotono en Noviembre 29, 2014, 10:20:52 AM
En create pones la variable poderseguir = 1;

En step del objnoplayer escribes este codigo :

if obj_noplayer.y < obj_b.y and obj_noplayer.x = obj_b.x { poderseguir = 0 }else{ podeseguir = 1}
if poderseguir = 1 { ACCION DE SEGUIR }
Título: Re:Problema minusculo llevando un objeto hacia otro
Publicado por: Ziliock en Noviembre 30, 2014, 06:37:59 PM
Cita de: Xizotono en Noviembre 29, 2014, 10:20:52 AM
En create pones la variable poderseguir = 1;

En step del objnoplayer escribes este codigo :

if obj_noplayer.y < obj_b.y and obj_noplayer.x = obj_b.x { poderseguir = 0 }else{ podeseguir = 1}
if poderseguir = 1 { ACCION DE SEGUIR }

Perdon,pero no entiendo a que te refieres,por eso alcare que seria mejor una solucion que no imvolucre Codes.¿No hay algo que se pueda escrivir en el icono Check Object,para usarlo en el evento Step?
De no ser asi no entiendo bien el codigo que me dejaste.Reemplaze los nombres y puse las variables pero me sale un error que dice : Unexpected end of Code reached.
Para mas informacion,lo que tiene que detenerse es un objeto que sigue al player y de vez en cuando se le asignan valores de Gravity y Friction,pero deve detenerse estando en la misma posicion Y del Player,osea,estando arriba de el
Título: Re:Problema minusculo llevando un objeto hacia otro
Publicado por: Xizotono en Noviembre 30, 2014, 10:23:25 PM
Yo solo trabajo con codigo, el D&D no lo entiendo xD.

Bueno, para seguir al player tienes que tener un codigo de seguimiento tal que asi :
move_towards_point(obj_player.x,obj_player.y,VELOCIDAD)
Ahora bien, en el obj_enemigo crea en el evento "CREATE" un execute a code con esto:
poderseguir = 1; //Indicamos que puede seguir al player
Tras esto en el evento "STEP" del obj_enemigo pones un execute a code con esto :

if obj_enemigo.y < obj_player.y and obj_player.x = obj_enemigo.x { poderseguir = 0 }else{ podeseguir = 1} //Indicamos que si esta exactamente arriba de el poderseguir sea 0
if poderseguir = 1 { move_towards_point(obj_player.x,obj_player.y,VELOCIDAD) } // Si lo puede seguir pues que lo siga


Arregla posibles errores de sintaxis ya que lo no lo probe en el GM (te ayuda el GM en los errores).
Título: Re:Problema minusculo llevando un objeto hacia otro
Publicado por: Ziliock en Noviembre 30, 2014, 10:30:52 PM
Cita de: Xizotono en Noviembre 30, 2014, 10:23:25 PM
Yo solo trabajo con codigo, el D&D no lo entiendo xD.

Bueno, para seguir al player tienes que tener un codigo de seguimiento tal que asi :
move_towards_point(obj_player.x,obj_player.y,VELOCIDAD)
Ahora bien, en el obj_enemigo crea en el evento "CREATE" un execute a code con esto:
poderseguir = 1; //Indicamos que puede seguir al player
Tras esto en el evento "STEP" del obj_enemigo pones un execute a code con esto :

if obj_enemigo.y < obj_player.y and obj_player.x = obj_enemigo.x { poderseguir = 0 }else{ podeseguir = 1} //Indicamos que si esta exactamente arriba de el poderseguir sea 0
if poderseguir = 1 { move_towards_point(obj_player.x,obj_player.y,VELOCIDAD) } // Si lo puede seguir pues que lo siga


Arregla posibles errores de sintaxis ya que lo no lo probe en el GM (te ayuda el GM en los errores).
: l
Creo que esto se va a extender demaciado tiempo si sigo preguntando,bueno.Muchas gracias por responder.Seguro de que no ahy ninguna variable que checkee si un objeto esta exactamente debajo o casi?Ya tengo las funciones para seguir al player echas con Drag and Drop.Si aun queres seguir ayudandome...El Objeto que sigue al player es un objeto invisible que sirve para mover la camara,como permanentemente sigue al player,puede cambiar ligeramente de posicion asi la camara enfoca desde un lugar distinto,pero cuando la camara se centra,hago que ese objeto se mueva horizontalmente hacia el player,por lo que para dejar la camara centrada,este deve detenerse cuando pasa por arriba del player.
Mientras tanto,voy a tratar de aplicar lo que me dejaste.Gracias denuevo
Título: Re:Problema minusculo llevando un objeto hacia otro
Publicado por: Xizotono en Noviembre 30, 2014, 11:27:35 PM
No, no hay ninguna variable chequee si esta debajo o casi (que yo sepa), es por ello que use el IF (indica si esta debajo).

Bueno, respecto a la camara no se como quedara el efecto visual que intentas...¿algo asi como un camara enfocando al player no?