Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: ameflow92 en Septiembre 02, 2015, 05:39:43 AM

Título: (Ayuda) Crear enemigo aleatoriamente dentro de un cuadro del room
Publicado por: ameflow92 en Septiembre 02, 2015, 05:39:43 AM
Hola amigos de la comunidad GM, me dirijo a ustedes esta noche ya que tengo una duda con un juego que estoy creando... verán estoy creando en un room de 1280x1280px donde aparece un enemigo dentro de un pequeño cuadro del room de 480x480... mi problema es que necesito que. L enemigo se cree de forma aleatoria dentro de este cuadro... Estoy usando dos objetos para ello...

el primer objeto se llama obj_enemy03 que lleva 2 eventos:
- Evento 01 "Create": lleva una acción de movimiento hacia las 8 direcciones.
- Evento 02 "Colisión": lleva la acción de rebote cuando colisionn con el objeto obj_wall.

El segundo objeto es el que se  encarga de crear al enemigo que se llama obj_crea_enemigo03 que lleva dos eventos:
- Evento 01 "Create": lleva una alarma "alarm 0" de 150.
- Evento 02 "Alarm 0":  lleva una alarma "alarm 0" de 150 tambien... y un código de ejecucion que es el siguiente:

operador=0
while(operador!=0)
{
x=random(room_width)
y=randon(room_height)
if x<=32 || x>=448 || y<=32 || y>=448
{
instance_create(x,y,obj_enemy03)
operador=1
}
else
{
operador=0
}}

En el trato de crear un valor aleatorio en X y en Y y que verifique que si son menor a los 32px del borde del cuadro o mayor a los 448px del cuadro tanto en X como en Y cree la instancia, sino que siga escogiendo valores aleatorios.


Pero no se que tengo mal que no me funciona... es la primera vez que uso GML espero me ayude...
Título: Re:(Ayuda) Crear enemigo aleatoriamente dentro de un cuadro del room
Publicado por: penumbra en Septiembre 02, 2015, 06:30:43 AM
En lugar de random, puedes usar o la función random_range o la función irandom_range y así te aseguras que al primer intento el enemigo se cree dentro del área deseada, sin necesidad de usar un while que se puede repetir poco o mucho

[gml]
randomize()
instance_create( irandom_range(32, 448), irandom_range(32, 448), obj_enemy03 )
[/gml]