Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: gerusa098 en Enero 07, 2016, 09:46:51 PM

Título: [Solucionado]Sistema de Reaparicion
Publicado por: gerusa098 en Enero 07, 2016, 09:46:51 PM
lo que pasa es que en el juego que estoy haciendo es que cuando el jugador muere reaparesca en cualquiera de las posiciones de dos objetos que he hecho y agregado al mapa con el siguiente codigo

choose(instance_create(rspw_1.x,rspw_1.y,Donut),instance_create(rspwn_2.x,rspwn_2.y,Donut));

el problema es que al reaparecer se generan dos objetos en las dos posiciones y yo quiero que nada mas se genere en una de esas dos posiciones, planeo también poner mas puntos de reaparición
Título: Re:Sistema de Reaparicion
Publicado por: bygdle en Enero 07, 2016, 09:51:17 PM
Primero, ¿En qué evento estás ejecutando el código? Porque si tienes sólo eso, en el evento step, muy mal, amigo. Muy mal.
Segundo, intenta usar este código:
[gml]
respawn = choose( instance_nearest(rspw_1), instance_nearest(rspw_2) );
instance_create(respawn.x,respawn.y,Donut);
[/gml]

A ver si te funciona
Título: Re:Sistema de Reaparicion
Publicado por: gerusa098 en Enero 07, 2016, 09:59:40 PM
en efecto lo tengo en el evento step, por que esta mal ponerlo ahí?
Título: Re:Sistema de Reaparicion
Publicado por: bygdle en Enero 07, 2016, 10:03:56 PM
Si lo tienes sólo eso, sí. Ya que el evento <STEP> se ejecuta contínuamente, por lo que crearás una instancia cada step, lo cual hará ¡pum!, imagina crear 30 instancias por segundo, en unos segundos tu juego explotaría xD

Lo ideal sería ejecutar ese código en <step> SÓLO cuando tiene que reaparecer.
Por ejemplo, imaginemos que va a reaparecer cuando se quede sin vida, y la vida se almacena en la variable "vida". Entonces hacemos esto:
[gml]
//Esto va en el evento STEP

if vida <= 0 //Si se quedó sin vida
{
   respawn = choose( instance_nearest(rspw_1), instance_nearest(rspw_2) ); //Elegimos el punto donde reapareceremos
   instance_create(respawn.x,respawn.y,Donut); //Reaparecemos
   instance_destroy(); //Eliminamos nuestra instancia antigua para no quedar duplicados
}
[/gml]
Título: Re:Sistema de Reaparicion
Publicado por: gerusa098 en Enero 07, 2016, 10:16:47 PM
muchísimas gracias, en verdad me sirvió lo que me explicaste, ya sirve correctamente y funciona como quería. Gracias  :)
Título: Re:Sistema de Reaparicion
Publicado por: bygdle en Enero 07, 2016, 10:18:31 PM
No olvides marcar el tema como solucionado editando el post principal y agregando [Solucionado] al principo del título, eso ayudará a futuros usuarios que deseen encontrar respuesta a la misma pregunta, y que no tengan que volver a preguntar
Saludos