Agosto 03, 2018, 12:26:25 PM Ultima modificación: Agosto 03, 2018, 12:56:57 PM por dani_gym
Como puedo hacer para que un enemigo aparezca en un area random de mi pantalla? Contando que quiero que aparezca dentro de un rectangulo que he creado como objeto. Mi objeto area se llama obj_player1. La formula que tengo es esta, pero no se cambiar a parametros para que el random sea el area de mi objeto: instance_create(random(0),random(room_height),obj_enemy)

Hola dani_gym
Para calcular la posición, debes hacer un random entre el (x2-x1) y le sumas x1. Si tu "objeto área" tiene un sprite rectangular, entonces puedes usar su boundary box como x1 y x2 mediante las funciones "bbox_left" y "bbox_right"
En este código te muestro un ejemplo de cómo hacerlo.
var xx = bbox_left + irandom(bbox_right - bbox_left)
var yy = bbox_top + irandom(bbox_bottom - bbox_top)
Instance_create(xx,yy,obj_enemy)

Favor notar que para leer correctamente la boundary box, ese código tiene que correr en el objeto obj_player1, si quieres hacer correr el código desde otro objeto, entonces tienes que llamar a la bbox del player con "obj_player1.bbox_left".
Si no te funciona, puedes cambiar las funciones bbox por las coordenadas en la room

Saludos

Prueba de esta manera:
[gml]
instance_create(irandom_range(0, room_width), irandom_range(0,room_height), obj_enemy)
[/gml]
Revisa en el manual la funcion irandom_range para saber mas

Cita de: 3dgeminis en Agosto 03, 2018, 04:35:03 PM
Prueba de esta manera:
[gml]
instance_create(irandom_range(0, room_width), irandom_range(0,room_height), obj_enemy)
[/gml]
Revisa en el manual la funcion irandom_range para saber mas

Muchas gracias!!! ese era el código que me faltaba!!