Hola, estoy haciendo otro proyecto con game maker pero esto me lleva un poco más de complejidad.
Tengo un enemigo que aparece siempre en el mismo lugar y viene directo a atacarme.
Hay alguna chance de que el enemigo pueda aparecer aleatoriamente fuera de mi screen y no venga directo hacia a mi? Si no que me ataque cuando yo esté a cierta distancia de el.
Espero haberme explicado, muchas gracias de antemano. :GMS:
Para crear un enemigo al azar en un objeto control poné esto:
Create:
[gml]
randomize(); //Con esto hacemos que realmente sea al azar.
instance_create(irandom_range(0,room_width),irandom_range(0,room_height),obj_enemy); //Con irandom_range obtenemos un valor entero de 0 al ancho de la room y de 0 al alto de la room.
[/gml]
Si queres crear más de un enemigo tendría que quedarte algo así:
Create:
[gml]
randomize();
alarm[0] = 15;
[/gml]
Alarm 0:
[gml]
var xx,yy; //Creamos variables locales
xx = irandom_range(0,room_width); //Asignamos un valor random para XX.
yy = irandom_range(0,room_height); //Asignamos un valor random para YY,
if (position_empty(xx,yy)) { //Si la posición en XX e YY está libre...
instance_create(xx,yy,obj_enemy);
}
alarm[0] = room_speed; //El código se va a repetir cada un segundo.
[/gml]
En cuanto a que el enemigo se acerque únicamente si estás cerca tendrías que poner algo así:
Evento STEP del enemigo:
[gml]
if (distance_to_object(obj_player) < 50) {
//Acá poné el código que tenías para que se acerque.
}
[/gml]
El 50 lo podes cambiar por la distancia que vos quieras, recordá que son 50 pixeles. También reemplazá los nombres "obj_enemy" y "obj_player" por el nombre de tu enemigo y de tu personaje.
Funcionó de 10, un lujo.