Hola compañeros:
A ver si alguien me puede ayudar...
vi un codigo para un sistema de oleadas y me funciona perfectamente, el único problema que veo es que solo puedo escoger un objeto para que me cree, ¿Sabríais decirme de algún código para que creara al menos 4 objetos?
También me gustaría que cada, digamos... 5 niveles, me creara un boss aleatorio, no estoy seguro de como hacerlo pero sería asi?
if numOleada = 5
create_instance(boss)
soy un desastre con GML xD
Gracias de antemano
Si pones el codigos que usas seria mas facil ayudar. ;D
Cita de: eams1986 en Mayo 04, 2015, 03:36:32 AM
Si pones el codigos que usas seria mas facil ayudar. ;D
si, tienes razón... xD este es el código:
en el objeto creadorDeEnemigos:
EVENTO CREATE :
numOleada = 1;
tiempoOleada = room_speed * 5; //5 segundos.
numZombies = 10;
oleada = 1;
alarm[0] = 10;
EVENTO ALARM[0] :
var yy,xx,direc;
if (oleada == 0) {
numOleada += 1;
oleada = 1;
}
if (instance_number(obj_enemigo2) < numZombies * numOleada) {
yy = random_range(240,400);
direc = random_range(0,1); //Creamos un n�mero aleatorio entre 0 y 1.
if (direc >= 0.5) { //Si ese n�mero es mayor o igual que 0.5 se crea el objeto de izquierda a derecha
idObj = instance_create(0,yy,obj_enemigo2); //con idObj tomamos la ID del objeto creado.
idObj.direccion = 0; //Al objeto reci�n creado le cambiamos el valor de la variable direccion.
} else { //Si no se crea de derecha a izquierda.
idObj = instance_create(room_width,yy,obj_enemigo2);
idObj.direccion = 1;
}
alarm[0] = 5;
} else {
oleada = 0;
}
EVENTO STEP :
if (oleada == 0 and instance_number(obj_enemigo2) == 0) {
if (alarm[0] < 0)
alarm[0] = tiempoOleada;
}
Tambien tengo un evento Draw, que dibuja las variables, pero el numero de oleada no me lo dibuja, habrá algo mal en el codigo??
Obj_control
EVENTO DRAW :
draw_text(view_xview+0,view_yview+448,string(instance_number(obj_enemigo2)));
draw_text(view_xview+64,view_yview+448,string(numOleada));
draw_text(view_xview+128,view_yview+448,string(oleada));
Muchas Gracias
Para crear varios enemigos tenes que cambiar la funcion que tenes instance_create(room_width,yy,obj_enemigo2); de esta forma instance_create(room_width,yy,choose(enemigo1,enemigo2,enemigo3,enemigo4));
Lo que hace la funcion choose en este caso es elegir un enemigo de entre los 4 que puse al azar, solo tenes que poner los nombres de los enemigos que queres que aparezcan.
Rspecto a lo otro me parece a mi que si se esta dibujando pero lo hace tan abajo que se sale de la view, proba a cambiar el valor de 448 por uno chico como 10 a ver que pasa.
Cita de: 3dgeminis en Mayo 05, 2015, 08:50:21 AM
Para crear varios enemigos tenes que cambiar la funcion que tenes instance_create(room_width,yy,obj_enemigo2); de esta forma instance_create(room_width,yy,choose(enemigo1,enemigo2,enemigo3,enemigo4));
Lo que hace la funcion choose en este caso es elegir un enemigo de entre los 4 que puse al azar, solo tenes que poner los nombres de los enemigos que queres que aparezcan.
Rspecto a lo otro me parece a mi que si se esta dibujando pero lo hace tan abajo que se sale de la view, proba a cambiar el valor de 448 por uno chico como 10 a ver que pasa.
Muchas Gracias 3dgeminis: con respecto a la función choose, me funciona y crea aleatoriamente los cuatro tipos de enemigos, pero lo unico es que ahora no cuenta todos los enemigos, solo los obj_enemigo2 y entonces hasta que no salen 10 obj_enemigo2 no para de generar enemigos... :-[.... he probado de muchas formas.... pero o me falla la función al ejecutar el juego o me crea los enemigos hasta que hay diez obj_enemigo2... además solo me crea los enemigos en la derecha... :(
respecto a lo de dibujar las variables, si que se me dibuja, justamente, 448 es el limite por abajo de mi view, lo que pasa es que no se mueve de cero, pase una o 10 oleadas...
Muchas gracias de nuevo! :D :)
Intenta crear un objeto vacio que sera el padre de todos los objetos enemigos y emparenta todos estos a el. Cuando quieras contar cuantos enemigos hay usa este nuevo objeto.
Para mas informacion consulta en el manual parents 8)
Te dejo un ejemplo
Cita de: 3dgeminis en Mayo 05, 2015, 10:23:05 PM
Intenta crear un objeto vacio que sera el padre de todos los objetos enemigos y emparenta todos estos a el. Cuando quieras contar cuantos enemigos hay usa este nuevo objeto.
Para mas informacion consulta en el manual parents 8)
Te dejo un ejemplo
3dgeminis MUCHAS GRACIAS!funciona perfecto
Pon en el evento creador de ZOMBIES esto:
Event Create: Execute Code:
global.oleada = 1
ahora pon en "step event" execute code asi:
if object_exists(obj_zombie) < 1
{global.oleada += 1} (Esto indica que cuando no allan mas zombies, la oleada aumentará al siguiente nivel..
y sigues poniendo asi
if global.oleada = 1
{pones los zombies que quieras en la primera oleada}
if global.oleada = 2
{pones los zombies que quieras en la segunda oleada}
if global.oleada = 3
{pones los zombies que quieras en la tercera oleada}
y sigues poniendo todo asi como va en orden... te quedaría algo asi.. por ejemplo :D
if object_exists(obj_zombie) < 1
{global.oleada += 1}
global.oleada = 1
{numero de zombies a tu eleccion}
global.oleada = 2
{numero de zombies a tu eleccion}
global.oleada = 3
{numero de zombies a tu eleccion}
if global.oleada = 4
{numero de zombies a tu eleccion}
y etc etc etc... sigues segun cuantas oleadas quieras hacer...
TE SIRVIO? dime jaja suerte amigo
Por Pregunta sobre este tema o otras dudas que tengas, te hago saber que me llamo Luiber Extrenzas en Facebook, aqui te dejo el Link, cuando quieras, a las ordenes (Y)
https://www.facebook.com/profile.php?id=100008220635391