Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Sdo.Ivan en Septiembre 16, 2011, 03:59:12 PM

Título: aparicion enemigos en lugares aleatorios(solucionado)
Publicado por: Sdo.Ivan en Septiembre 16, 2011, 03:59:12 PM
os explico...para que progresivamente vayan apareciendo enemigos en la room en lugares aleatorios estoy usando este codigo

tengo un objeto llamado control_enemigos
en su create
[gml]alarm[0] = 10[/gml]
y en la alarma 0
[gml]xrandom = random(room_width)
yrandom = random(room_height)
if place_free(xrandom,yrandom)
{
instance_create(xrandom,yrandom,soldado_02);

}
alarm[0] = 10[/gml]

teniendolo asi se me plantean varios problemas

1- deduzco que al buscar aleatoriamente una posicion x e y donde que se encuentre libre muchas veces se crea un enemigo encima del otro y se quedan "bugueados" ya que cada enemigo ocupa un circulo de 32pxl de diametro no sabria solucionar esto.

2-teniendo en cuenta q la view de la room hace 640x640pxls muchas veces se crean enemigos en la view y querria evitar esto...tampoco sabria como hacer para que aparecieran en la room pero fuera de la view...un saludo y gracias
Título: Re: aparicion enemigos en lugares aleatorios
Publicado por: Jucarave en Septiembre 16, 2011, 04:12:05 PM
Hola, para lo de encima del otro puedes cambiar place_free por collision_circle

[gml]xrandom = random(room_width)
yrandom = random(room_height)
if place_free(xrandom,yrandom){
if not (collision_circle(xrandom,yrandom,32,soldado_02,1,0)){
     instance_create(xrandom,yrandom,soldado_02);
}
}
alarm[0] = 10[/gml]

y para que aparecieran por fuera de las vistas podrias hacer:

[gml]xrandom = random(room_width)
yrandom = random(room_height)
if place_free(xrandom,yrandom){
if not (collision_circle(xrandom,yrandom,32,soldado_02,1,0)){
     if not((xrandom>view_xview[0]&&xrandom<view_xview[0]+view_wview[0])&&
        (yrandom>view_yview[0]&&yrandom<view_yview[0]+view_hview[0])){
          instance_create(xrandom,yrandom,soldado_02);
     }
}
}
alarm[0] = 10[/gml]


--
saludos.
Título: Re: aparicion enemigos en lugares aleatorios
Publicado por: Sdo.Ivan en Septiembre 16, 2011, 04:33:37 PM
funciona...entendi lo del colision circle pero la verdad...el codigo de que no salga en la view...me resulta de lo mas raro  :-[  :-[ pero funciona perfectamente...mil gracias