Buenas a todos.
Hace poco que termine la primera ''mazmorra'' en mi videojuegucho. Y ahora estoy construyendo la sala en donde ha de combatir con el jefe.
No obstante, mientras hacia el Room se me vino una duda a la mente. ¿Como hacer que la sala en sí funcione como en los juegos de Megaman? Es decir, que se cierren la puerta de entrada y salida cuando entres, y que luego de derrotar al jefe vuelvan a abrirse.
Gracias por leer :)
Puedes hacer un objeto que sea el controlador de las puertas.
Si en tu juego los niveles se mueven hacia la derecha, puedes poner en el controlador de la puerta:
<Step>
if obj_player.x>cordenada_x_del_centro_de_la_sala_del_boss and instance_exists(obj_puerta_boss)=false and instance_exists(obj_boss)=true
{
instance_create(cordenadax_entrada,cordenaday_entrada,obj_puerta_boss);
instance_create(cordenadax_salida,cordenaday_salida,obj_puerta_boss);
}
Así cuando llegues hacia el centro de la sala del boss (para que no se cierre la puerta justo cuando estás debajo y te aplaste) se crean 2 instancias de un objeto puerta que bloquearán
la habitación.
Luego, para hacer que se vuelva a abrir (que la puerta se destruya) una vez derrotado al enemigo puedes poner en el <Step> del controlador:
if instance_exists(obj_boss)=false
{
if instance_exists(obj_puerta_boss)
{
with(obj_puerta_boss) { instance_destroy(); }
}
}
Es decir, cuando hayas derrotado al enemigo y se haya destruido, destruirá también las puertas.
Espero que te sirva.
¡Saludos!
EDIT: Una vez vueltas a abrir las puertas, el controlador ya no hace ninguna función así que puedes hacer un instance_destroy() en el código justo después de abrir las puertas.
Buenas [user]Mega G[/user].
Estaba terminando de testear cuando decidí probar el código. Entonce me salio esto:
[spoiler]___________________________________________
ERROR in
action number 1
of Step Event
for object Controlador:
Error in code at line 1:
if OBJ_Sunson.x = 1568 and instance_exists(Puertas)=false and instance_exists(ENG_Ciclomorte)=true
^
at position 4: Unknown variable OBJ_Sunson[/spoiler]
Posiblemente hice algo mal ya que soy un paquete en lo que se trata de utilizar GML (Por eso uso las opciones que vienen por defecto :-[). Me ayudaria mucho si me dijeras como solucionar el error.
Gracias por leer.
El error tiene una de dos posibles causas
a) OBJ_Sunson es una variable que no está inicializada correctamente (si es una variable, debería contener el índice de un objeto o el identificador de una instancia)
b) En el juego no existe ningún objeto de nombre OBJ_Sunson y GM piensa que es una variable (que tampoco existe)
Tuve que utilizar solo el segundo código para que no siguiera dando error.
No es el resultado que esperaba pero al menos se le acerca bastante. Muchas gracias a ambos.