Mayo 04, 2015, 03:05:28 AM Ultima modificación: Mayo 06, 2015, 01:14:50 AM por WolfIng Entertainment
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


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.

#4 Mayo 05, 2015, 06:52:18 PM Ultima modificación: Mayo 05, 2015, 07:22:20 PM por WolfIng Entertainment
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


#7 Mayo 08, 2015, 07:16:17 AM Ultima modificación: Mayo 08, 2015, 08:05:11 AM por damyrodriiguez
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