Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: nikoelcazador en Octubre 03, 2014, 04:11:12 AM

Título: Problema con oleadas en juego de zombis
Publicado por: nikoelcazador en Octubre 03, 2014, 04:11:12 AM
Hola amigos soy nuevo en el foro,empecé a utilizar gm hace un mes y medio,actualmente utilizo gm studio,estoy creando mi primer juego,un top down shooter con zombis basado en supervivencia de oleadas,el tema es que luego de la segunda o tercera oleada no aparecen los zombis,pero en otras oportunidades si,cada 4 oleadas aparece un boss,pero bueno el problema es ese,a que se podría deber? Desde ya muchas gracias
Título: Re:Problema con oleadas en juego de zombis
Publicado por: penumbra en Octubre 03, 2014, 04:22:24 AM
Con lo que comentas nadie te va a poder ayudar. Es necesario conocer el código que genera las oleadas para detectar el posible error.
Título: Re:Problema con oleadas en juego de zombis
Publicado por: nikoelcazador en Octubre 03, 2014, 04:37:23 AM
Es verdad,el código es este

Create event
alarm[0] = 240
global.current_wave = 1
Alarm 0 event
if((global.current_wave mod 4) == 0){ instance_create(x,y,obj_boss) }
else{
repeat(4+ global.current_wave*10){ ang = random(360) len = random_range(300,500) instance_create(x + lengthdir_x(len,ang),y + lengthdir_y(len,ang),obj_zombie) }
}
global.current_wave++ alarm[1] = 10
Alarm 1 event
if(instance_number(obj_zombie) == 0 && instance_number(obj_boss) == 0){ alarm[0] = 120 }
else{
alarm[1] = 10
}
Título: Re:Problema con oleadas en juego de zombis
Publicado por: nikoelcazador en Octubre 03, 2014, 08:18:28 PM
Bueh poco serio este foro
Título: Re:Problema con oleadas en juego de zombis
Publicado por: king195 en Octubre 03, 2014, 08:44:35 PM
Para que creas otra alarma para hacer que se repita alarma[0]? Yo lo haría mucho más simple

if instance_number(obj_enemigo) < 1
{
repeat(1 + global.nivel)
    {
    instance_create(-16 - random(64), (room_height / 2) - 80 + random(160), obj_enemigo);
    instance_create((room_width / 2) - 64 + random(128), -16 - random(64), obj_enemigo);
    }
global.nivel += 1;
}
alarm[0] = room_speed;


Y de paso tienes una variable global que te indica en que nivel estas. Puedes moldearlo a lo que tu busques, pero vaya, no tiene mucho sentido poner una Alarma si después usas otra para activar la 0. Para eso pon todo dentro de 1 alarma y a correr.

Eso lo que hace es ir repitiéndose y a parte de sumar niveles genera más instancias cada vez de forma infinita o hasta donde tu le indiques.

Edito: No te lo tomes a mal si alguien no te responde al momento a tu pregunta... pero esto es un foro, todos los foros son iguales, no hay gente a la que se le paga para que te responda a ti u a otro usuario, ten paciencia nada más...