hola. En mi juego hay una parte de juego de naves, donde los enemigos salen al azar. Lo que quiero es que para pasar de nivel mi personaje elimine a una cierta cantidad de enemigos (que son 3) para finalizarlo.
Implemente este codigo que encontre
total=instance_number(malo1) + instance_number(malo2) + instance_number(malo3);
if total<=10 { finalizar_nivel(); }
pero el juego se me pega.
Como puedo arreglarlo?
Saludos
Lo que estás haciendo es contar cuántos enemigos hay en total, después, si hay al menos un enemigo (entre 1 y 10) se llama al script finalizar_nivel. De tal manera que nunca pasarás al siguiente nivel al eliminar a tres enemigos.
Primero, En el jugador deberías crear una variable que te indique cuántos enemigos has eliminado, por ejemplo kills
CREATE
[gml]kills = 0[/gml]
Cada que elimines un enemigo, la variable kills debe aumentar en +1. Esto no puedo decirte exactamente dónde y cómo, porque no sé cómo tengas tu código, pero se supone que al eliminar a un enemigo, su instancia se debe destruír, entonces, en el evento DESTROY del objeto enemigo:
[gml]obj_jugador.kills += 1[/gml]
Lo ideal es que en todo juego haya un objeto controlador que sería el que se encargue de, entre otras cosas, pasar de nivel. En este objeto, en STEP
[gml]if (obj_jugador.kills == 3) { finalizar_nivel(); obj_jugador.kills = 0 }[/gml]
Suponiendo que el script finalizar_nivel() está correcto y hace que se avance a la siguiente habitación.
miil gracias .. me funciono super :)
** Probando otra vez descubri que al colisionar con los enemigos me tira un error
FATAL ERROR in
action number 1
of Step Event0
for object objeto_control:
Push :: Execution Error - Variable Get -7.__b__(100003, -1)
at gml_Object_objeto_control_Step_0 (line 7) - if __b__
Postea el codigo/s de STEP, porque el codigo del señor Penumbra esta bien y es lo mas sencillo de hacer.
Yo quiero que cuando mate 20 enemigos salga la ventana de ganaste, eso funciona bien, solo me causa error cundo colisiono con un enemigo.
este es el codigo que use:
if (obj_nave.kills == 20) {gana = 1; obj_nave.kills = 0 }
*** ese era , perdon **
mmm no entiendo porque sale obj_nave.kills == 20 y despues obj_jugador.kills = 0
nave y despues jugador
Hola comunidad se resolvió este problema? yo tengo problemitas a la hora de reproducir el juego me tira un error que dice
FATAL ERROR in
action number 1
of Step Event
for object player:
COMPILATION ERROR in code action
Error in code at line 1:
if object_player.kills == 5) { instance_destroy (object_paredmovible); object_player.kills = 0}
^
at position 28: Unexpected symbol in expression.
ayuda porfavor :'(
soy un novato en esto de los codigos y en todo xD
intento hacer un juego estilo beat em' up en el cual coloco una pared invisible y quiero destruirla después de haber matado cierta cantidad de enemigos para no terminar el juego solo avanzando y para que sea mas entretenido, se los agradezco mucho saludos :)