preguntas de un principiante sobre bennugd

Started by hokuto40, April 03, 2017, 08:34:15 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

hokuto40

Gracias por responderme,y lo del cambio de nivel como podria hacerlo para que fuera mas facil que el metodo que explican en el manual.

Por cierto ya he terminado el manual y me ha ido bien hasta lo del tutorial de la nave pero despues de hay me he perdido y no me he enterado de casi nada,tambien queria preguntar para cuando el autocompletado que me comentasteis lo ibais a introducir en el siguiente bennupack y tambien los nuevos ejemplos  para personas principiantes.Hasta pronto

l1nk3rn3l

ya dentro de poco retomaremos el tema es hay bastante trabajo gracias a Dios...
;D

Drumpi

Tu tranqui, Momia, que para eso está la comunidad, para ser el "3 en 1" del código ;)

hokuto40: hay varias formas de crear un cambio de nivel, como podría ser descargar los recursos del viejo (gráficos de fondo, naves del nivel, música), recolocar los procesos que te sirvan a la nueva posición inicial (nave prota, algunos enemigos, las barras de vida), modificar las variables (energía, tiempo, enemigos a matar...) y volver a empezar.

Pero sin duda la mejor forma es... destruirlo todo y empezar otra vez ^^U
Me explico. En mi forma de trabajar (que no tiene por qué ser la mejor) tengo un proceso que se llama "play_level(numero_de_nivel)", que lo que hace es:
- En función del nivel, carga unos gráfios y sonidos concretos (el fondo del nivel, su música)
- Los gráficos y SFX comunes (el prota siempre es el mismo, a menos qe pueda subir de potencia :D).
- Luego crea los procesos y entra en un bucle mientras dure la partida (normalmente tengo una variable global, "fin_partida", que vale 0 mientras se está jugando, 1 si el jugador ha superado el nivel, -1 si ha muerto o fracasado, y 2 si se decide interrumpir la partida desde el menú de pausa).
- Después hago el proceso inverso, es decir, mato procesos (TODOS los del nivel) y descargo recursos.
- Y si es necesario, devuelvo el "fin_partida".
Y ahí muere el proceso. Por lo general, lo que hace es despertar al padre, que es otro proceso que es el que lleva el flujo de una partida, y es el que decide qué nivel se debe jugar en cada momento, en función de si se acaba de empezar, se ha cargado una partida, o de cómo haya terminado el nivel anterior. Es muy útil a la hora de tener "warp zones" o un debug con selector de nivel.

De hecho, sigue las premisas que me enseñaron al programar: mientras haces pruebas, debes de ser capaz de llegar a cualquier parte del código nada más arrancar la aplicación. Y tener un "level select" es básico en el desarrollo de videojuegos (y también alguna forma de llevar al prota a una posición concreta del nivel). Por eso, una función que cargue y destruya un único nivel a elegir, creo que es básico, o en todo caso, un proceso por cada uno de los niveles. La cuestión es que pueda ser llamado por cualquier otro en cualquier momento, y que el nivel sea independiente de cualquier otro proceso.

Suena complicado, pero no lo es tanto. Ya verás cómo en tu tercer juego lo entiendes perfectamente y ya tienes tu propio método para crear niveles ;) Lo mismo hasta encuentras una más efectiva que la mía... y que conste que yo todavía sigo modificando este método en cada juego que hago (de hecho, en cierto juego lo he reescrito ya tres veces, y seguro que habrá una cuarta :D).
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

hokuto40

gracias por contestarme,estare pendiente del nuevo bennupack.
Voy a empezar a hacer preguntas en otro tema porque este ya esta demansiado cargado