muy buenas compa?eros...vereis estoy dandole vueltas a este codigo
[gml]instance_create(random(room_width),random(room_height),enemigo_01)[/gml]
esto est? puesto (ademas de mas cosas) en el momento en el que el enemigo muera....mi intencion es hacer que aparezca otra vez en cualquier lugar de la room aleatoriamente pero.....que deberia a?adirle para que aparezca en un lugar random de la room pero en un lugar que est? libre de colision en un circulo de 64px de radio?
mil gracias compa?eros 8)
creo que podr?as hacer un script "scr_Reaparicion", por ejemplo... luego cuando muera lo llamas y en el script puedes poner esto:
[gml]
var xx, yy;
xx = random(room_width); //Crea una coordenada aleatoria xx
yy = random(room_height); //Crea una coordenada aleatoria yy
if !(collision_circle(xx,yy,64,obj_muro,0,0)) //busca una colision en las coordendas xx, yy con un radio de 64 con los objetos muros.
{
instance_create(xx,yy,enemigo_01); //Si no hay colision lo crea.
}
else
{
scr_Reaparicion(); //Y si hay collision entonces vuelve a ejecutar el script.
}
[/gml]
No lo he probado, pero creo que deber?a funcionar.
Saludos. ;D
te explico...en el step del enemigo hay esto
[gml]if vida_e1<1 ///abrimos lo que pasar? ssi est? muerto
{instance_destroy() ///se destruir?
with cve01 {instance_destroy ()} ///se destruir? su campo de vision
with cte01 {instance_destroy ()}; ///se destruir? su campo de tiro
script_execute(scr_Reaparicion)
} ///cerramos lo que pasara si esta muerto[/gml]
y el script scr_Reaparicion es este
[gml]var xx, yy;
xx = random(room_width); //Crea una coordenada aleatoria xx
yy = random(room_height); //Crea una coordenada aleatoria yy
if !(collision_circle(xx,yy,64,escenario,0,0)) //busca una colision en las coordendas xx, yy con un radio de 64 con los objetos muros.
{
instance_create(xx,yy,enemigo_01); //Si no hay colision lo crea.
}
else
{
scr_Reaparicion(); //Y si hay collision entonces vuelve a ejecutar el script.
}[/gml]
pues cuando mato a un enemigo me tira el juego....vamos que no me sale ningun mensaje de error pero el juego desaparece y aparezco otra vez en game maker...como si se cerrase.Salud y gracias.
EDITO:me tira cuando mato a un segundo enemigo y juraria que no reaparece en otro sitio el primero que mato.
Dame un par de minutos y te hago un ejemplo... edito este mensaje.
;D
EDIT: Ya lo hice :D espero que te funcione
Por cierto con tu codigo...
[gml]if vida_e1<1 ///abrimos lo que pasar? ssi est? muerto
{instance_destroy() ///se destruir?
with cve01 {instance_destroy ()} ///se destruir? su campo de vision
with cte01 {instance_destroy ()}; ///se destruir? su campo de tiro
script_execute(scr_Reaparicion)
} ///cerramos lo que pasara si esta muerto[/gml]
Es mejor que hagas todas las funciones antes de a?adir el instance_destroy()
osea asi:
[gml]if vida_e1<1 ///abrimos lo que pasar? ssi est? muerto
{with cve01 {instance_destroy ();} ///se destruir? su campo de vision
with cte01 {instance_destroy ();} ///se destruir? su campo de tiro
scr_Reaparicion();
instance_destroy(); ///se destruir?
} ///cerramos lo que pasara si esta muerto[/gml]
Espero que te funcione, saludos.
Pues creo que es mucho mas f?cil hacerlo as?
[gml]with(instance_create(x,y,obj_enemigo)){
while (!collision_circle(a.x,a.y,64,obj_muro,0,0))
{x=random(room_width)
y=random(room_height)}}[/gml]