Hola a tod@s,
He estado buscando por el foro y no he encontrado algún tema relacionado. Así que publico esta consulta nueva.
Para poneros en situación. Quiero que al ejecutar el juego aparezca el logo de mi grupo desarrollador. Así que en la room1 tengo el logo y a los 2 segundos va a la room2 donde está el menú del juego.
Una vez que se juega y se pierde hago que se reinicie el juego para que todos los valores se restrablezcan, pero al reiniciar el juego vuelve a la room1 y claro, eso queda muy feo porque siempre sale el logo. Mi idea es que cuando se reinicie el juego vaya a la room2 que es el menú del juego.
¿Alguien me puede ayudar? o indicarme cómo podría hacer para que aparezca el logo cuando se ejecute el juego y solo aparezca esa vez y no siempre que se reinicie la partida.
Muchas gracias
Cuando el personaje muera o el juego se acabe, en lugar de reiniciar el juego game_restart()
haces un room_goto() a la segunda habitación.
Hola,
Gracias por responder. Ya intenté esto que me dices, pero al empezar el juego de nuevo, las variables de los enemigos no se reinician y es como si empezaras el juego desde donde mueres.
Saludos
Cita de: eulogioep en Abril 23, 2014, 08:42:22 PM
Ya intenté esto que me dices, pero al empezar el juego de nuevo, las variables de los enemigos no se reinician y es como si empezaras el juego desde donde mueres.
Puedes hacer un script que reinicie las variables de los enemigos, o puedes usar un ini para saber si se debe mostrar la primer habitacion o no. Si la primera habitación es la del logotipo, al usar un game_restart() sin nada más, siempre se va a mostrar al inicio.
EDITADO:Pregunta: Si al hacer room_goto() las variables de los enemigos no se reinician ¿es porque hiciste persistentes al os enemigos? A lo mejor se me está escapando algo, pero se supone que si los enemigos no son persistentes, al cargar la habitación creo que tendrían que volver a empezar con sus variables originales.
Puedes hacer un script que reinicie las variables de los enemigos, o puedes usar un ini para saber si se debe mostrar la primer habitacion o no. Si la primera habitación es la del logotipo, al usar un game_restart() sin nada más, siempre se va a mostrar al inicio.
Hola Penumbra,
Tiene muy buena pinta eso que dices. ¿Me puedes indicar como crear ese ini para que cuando llame a game_restart() no muestre la primera habitación?. He intentado reiniciar las variables. Vamos, he creado un objeto inicializador con todas las variables y está en la habitación menú. Lo que pasa, que cuando muere el personaje, indico que vaya a la room menú, pero al pulsar el botón de iniciar juego tarda en reaccionar y cuando arranca la room del juego está todo igual que cuando murió el personaje. Creo que si puedo usar game_restart() y que vaya a la room menú en lugar que a la room intro. O si sabes cómo hacer que se muestre el logo en la room menú y desaparezca y no vuelva a aparecer si se reinicia el juego.
La verdad es que estoy muy perdido y con este tema llevo toda la tarde y no avanzo :'(
1. ¿Tus enemigos o la habitación son persistentes? Me imagino que el juego tendrá más de una habitación cuando lo termines, ¿no?
Para guiarte te indico:
Está la room_Intro donde aparece el logo y a los 3 segundos llama a una alarma que va a la room_Menu
En la room_Menu hay un botón para iniciar el juego que llama a la room_Juego.
Si el enemigo mata al personaje llama a la room_Perder donde sale un texto de GameOver y a los 3 segundos con una alarma reinicia el juego. Al reiniciar el juego aparece de nuevo la room_Intro. Si indico que no reinicie y llame a la room_Menu. Cuando aparece la room_Menu y pulso el botón de jugar no reacciona. Tarda un rato y después de pulsar mucho ya empieza el juego, pero empieza tal como se dejó la partida al matar al personaje. Los enemigos van saliendo solo con una alrma y se va incrementando la velocidad de los enemigos. Si no se reinicia el juego, los enemigos tienen la velocidad que se quedó al matar al personaje.
El objeto con la variable de la velocidad del enemigo está en la room_Menú. Se supone que se tiene que reinicar las variables, pero parece que no.
Buff, un jaleo. Estoy viendo que si no consigo avanzar, quitaré la room_Intro y ya está, pero viendo juegos por ahí que al reiniciar la partida no sale el logo, pensaba que sería más facil.
Gracias por leer tanto toston. :-[
Puedes tomar la salida fácil y agregar un objeto en la room inicial que use current_time en su evento create para enviarte a la room del menú:
if current_time > 5000 room_goto(room_Menú)
Con ese código, por ejemplo, si el juego lleva más de 5 segundos corriendo se saltará el room inicial.
Aún así, sería bueno que averigües porque los niveles del juego se mantienen iguales cuando los abandonas, tienes el room persistente? estas abusando de variables globales? La mejor manera de aprender es experimentar, buscar donde es que está fallando tu código y tratar de arreglarlo tratando algo distinto.
Bueno, Killer ya dio la solución más simple. Si es extraño cómo se comporta tu sistema de habitaciones, el comportamiento por defecto es que al reiniciar una habitación los enemigos aparezcan como originalmente están definidos en su evento CREATE, a menos que haya una persistencia especificada
Muchas gracias Killer y Penumbra. Voy a usar esta solución. En cuanto a las rooms no uso persistencia alguna. La verdad es que por mucho que miro no entiendo porqué reacciona así el juego.
De nuevo muchas gracias por la solución.
Un saludo!