Hola a todos, como dice el titulo del tema, necesito algo de ayuda con el avanzar de nivel al destruir un cierto numero de enemigos.
Se que debo hacer una variable "global.enemigos_destruidos" (por ejemplo) y que esa me haga avanzar al ser igual a un cierto numero, lo que no se es: ?debo hacer una variable distinta para cada nivel (cada nivel pediria un numero de enemigos diferentes), o puedo usar una variable unica?
Les agradezco de antemano por su ayuda.
Crea dos variables:
[gml]
global.enemigos_destruidos
global.enemigos_necesarios
[/gml]
Ahora ve al "Creation code" de cada room y agisnale el valor que desees a la variable de necesarios y reinicia la otra:
[gml]
global.enemigos_destruidos = 0
global.enemigos_necesarios = argument0
//Donde "argument0" es el numero de enemigos que deseas destruir para pasar de nivel.
[/gml]
Entonces ahora crea un objeto "Controlador" persistente, para que este en todos los rooms y crea el siguiente evento con las siguientes acciones:
Step:
[gml]
if global.enemigos_destruidos = global.enemigos_necesarios
{
room_goto_next()
}
[/gml]
Si asi nomas no se adapta a tu juego, lo puedes adaptar, es sencillo :)
Muchas gracias, siempre olvido que los Rooms tienen sus propios codigos donde puedo colocar codigos.
Cita de: gamemastertom en Agosto 12, 2011, 01:58:58 AM
Muchas gracias, siempre olvido que los Rooms tienen sus propios codigos donde puedo colocar codigos.
Cualquier duda, vuelve ^^
Te la pongo mas facil y rapido.
en el event step
if !instance_exists(objEnemigo)
{room_goto_next();}
Cita de: elviskelley en Agosto 16, 2011, 04:00:56 PM
Te la pongo mas facil y rapido.
en el event step
if !instance_exists(objEnemigo)
{room_goto_next();}
Pero el pidio
Cita de: gamemastertom en Agosto 11, 2011, 11:59:25 PM
avanzar de nivel al destruir un cierto numero de enemigos.
Por lo que dijo, el quiere un codigo que le haga pasar de room cuando mate cierto numero de enemigos, no cuando ya no haya enemigos.
Pero si quiere pasar de nivel cuando ya no haya enemigos si debera poner tu codigo, si quiere un cierto numero de enemigos tendra que poner el mio.
a ok entonces que lo haga asi.,
if instance_number(objEnemigos) < numero de enemigos que deben quedar
{room_goto_next();}
Cita de: elviskelley en Agosto 16, 2011, 11:56:04 PM
a ok entonces que lo haga asi.,
if instance_number(objEnemigos) < numero de enemigos que deben quedar
{room_goto_next();}
Claro, ahi tienes razon tu. Porque yo me imagine que en cada room el numero de enemigos iba a ser distinto, por eso hice todo el codigo ese xD
Pero ningun momento dijo que iba a ser asi, asi que gracias por completar mi respuesta :D Ademas me diste info a mi tambien :)
aunque los enemigos sean distintos siempre crea un enemigo el cual le colocas como sprite un cudro o un circulo, la verdad no importa mucho la forma del sprite a ese enemigo (object) no le colocas codigo alguno, solo lo llamas objEnePadre lo que aras es que todos los ataques del player esten dirigidos al objEnePadre, ?por que? con esto lo unico que debes hacer es que todos los enemigos tenga como Parent al objEnePadre, asi todos serian en cierta forma el objEnePadre esto te permitiria ahorrar mucho codigo, y ademas, no afecta en lo negativo por que podras poner a cada obj enemigo sus diferentes movimientos lo unico sera que no tendras molestias a la hora de tener que decir a una bala a que enemigo atacara por que siempre sera el objEnePadre. Es como si todos los enemigos fueran clones del objEnePadre. pero cada uno con otra imagen y mente propia.
Cuando tienes todos emparentados con el Parent del objEnePadre, este codigo.
if instance_number(objEnemigos) < numero de enemigos que deben quedar
{room_goto_next();} Cuenta todos los objects enemigos como si fueran un mismo tipo de enemigos, es decir puede ser uno un robot otro enemigo un leon otro una nave, pero como todos estan emparentados, para el sistema seria solo el objEnePadre con distintos dibujos y distintos codigos.