Bueno hoy toca el turno de armar la rutina jugar al menos la estructura básica esta rutina es la que
más va a crecer a lo largo del desarrollo del juego.
También vamos a crear muchas sus rutinas que van a ser cosas muy puntuales pero vamos a armar la estructura
básica de jugar qué es lo que pasa en jugar va a tener que correr otra iteración otro Weyl.
Por qué.
Porque mientras yo estoy jugando se va a tener que ir armando mi pantalla una y otra vez para que para
mostrar la posición de la bola para mostrar la posición de nuestra base y eso va a requerir una serie
de pasos y además vamos a tener que inicializar ciertas variables antes de comenzar el juego porque
yo voy a terminar un juego y voy a querer jugar nuevamente y cada vez que juegue cada vez que ejecute
jugar va a tener que poner en valor inicial muchas variables.
Por ejemplo vamos a comenzar con el level igual uno voy a empezar a jugar en el nivel 1 la pantalla
número uno y voy a decirle que fin de juego es igual a Fool's porque no se terminó el juego recién va
a comenzar yo seguramente vengo de un fin de juego anterior donde se puso en esta variable y la tengo
que volver a poner en fold porque ahora va arrancar un nuevo juego muy bien.
Ahora bien el Weyl y el Weyl recuerden que yo puedo jugar hasta que el usuario pulse escape pero no
solo va a tener que detectar si pulso escape si el juego terminó porque ya me quedé sin vidas y apareció
el game over.
Voy a tener que salir de este Weyl para que luego le vuelve el control a la rutina de Main y Main va
a saber qué hacer si terminó el juego.
Luego lo vamos a ver ahora.
Entonces yo voy a jugar mientras que no se haya pulsado la tecla Escape y además estos tunante en C++
que no sé a fin de juego esta variable que yo acepté aquí como fouls va a dar todo y va como Not Pulse
ni escape y tampoco a fin de juego porque la Septién Fool's va a entrar en el Weyl y va a empezar el
desarrollo de nuestro juego.
Muy bien ahora qué es lo que tenemos que hacer aquí.
Vamos a ejecutar después le vamos a meter todo lo que tiene que ver con sonidos ahora me interesa la
estructura la estructura de nuestro programa entonces nosotros vamos a tener que comenzar el nivel cada
vez que Lev Leiber aumente o sea cada vez que terminó una pantalla y aumento de nivel voy a tener que
hacer unas pequeñas instrucciones de inicialización de nivel no las vamos a desarrollar ahora porque
la vamos a ir viendo conforme avancemos en el curso no vamos a ver todo en este capítulo vamos a ir
creando la estructura ok ahora mientras Nyom esté en un solo nivel imagínense el nivel 1 la pantalla
yo voy derrotando ladrillos los voy destruyendo yo voy a tener que iterar dentro de ese nivel.
No voy a poder irme a otro nivel entonces yo voy a tener que hacer otro Weyl donde no hay un nuevo nivel
van a ver que esta variable el nuevo nivel se va a poner en Tru cuando el sistema detecta que ya no
hay más ladrillos por romper cuando yo constantemente estoy escaneando digo quedó algún ladrillo por
romper.
Cuando detecta que no hay ninguno va a poner Tru en la variable nuevo nivel y me voy a salir del nivel
eso va a ser que caiga por este otro Weyl inicializar el nuevo nivel y vuelvo a jugar pero en un nuevo
nivel se entiende esto hay una iteración adentro de otra porque es necesario entonces aquí voy a poner
siempre voy a tener que chequear si se ha pulsado escape en todos los Weyl.
Por qué.
Porque es la premisa de mi juego.
Si un usuario no quiere jugar más yo voy a tener que chequear que no haya pulsado escape en ningún momento
y además voy a chequear si vida es mayor a cero porque quizás terminé de romper todos los ladrillos
o perdí y vida se puso en cero y yo ya tengo que salir ya tengo que mostrar mi y mover tengo que parar
ese juego y darle la posibilidad al usuario de arrancar un nuevo juego entonces mientras estas tres
condiciones se cumplen que no es un nuevo nivel que no pulsó la tecla Escape y que tengo vidas todavía
ahí voy a jugar en mi nivel por eso tengo todo esto en Uruguay separado.
Todo va a transcurrir aquí cuando pasé de nivel cuando perdí las vidas o el usuario tocó escape.
Voy a venir aquí como se va a volver a dar la condición de que el usuario tocó escape me voy a ir de
la rutina a jugar y voy a caer en mi rutina inicio donde va a volver a chequear de que pulsó escape
y terminé mi juego es una detección en cadena digamos bueno muy bien ahora ya estoy dentro de mi rutina
de lo que tiene que ver con mi nivel qué es lo que voy a hacer.
Voy a hacer un chequeo.
Recuerden si ustedes se fijan en la imagen para comenzar el juego el usuario tiene que darle a la barra
espaciadora para que para que se suelte la bola de la base y empiece realmente el juego.
Entonces aquí voy a ser que si es igual aquí voy.
O sea que pulsó la tecla Escape y por ejemplo en juego es igual a foul.
Por qué pregunto si es igual a fouls.
Porque si el usuario está en medio del juego y pulsa la tecla la barra espaciadora.
Yo no puedo hacer nada no puedo ver recién ahí arrancar la animación.
Esto es lo que va a hacer es poner en juego mi nivel.
Voy a comenzar va a despegarse la bola de la base y va a comenzar una vez que comencé yo no puedo hacer
lo mismo porque si no voy a estar iniciando el nivel una y otra vez con solo pulsar la tecla de la barra
espaciadora.
Entonces es muy importante que si estoy en juego es igual a fouls que es una variable que hemos declarado
ya con un valor de por default default ahí si recién va a iniciar nuestro juego y no no se entiende
tengo que hacer comprobaciones porque el chequeo de teclado es muy sensible y lo va a detectar en todo
momento va a estar la bola moviéndose por la pantalla y yo voy a agarrar la barra espaciadora y ahí
qué tiene que hacer nada.
No tiene que tener ningún efecto porque yo ya estoy en juego cuando comienza el juego Fíjense cuando
comienza el juego yo le muevo un Tru a partir de ahora.
Esta es una rutina de única vez.
Cuando entré ya después no va a volver a entrar porque la variable en juego ya es Trough y qué voy a
hacer aquí.
Aquí tengo que hacer todo lo que tiene que ver con mostrar voy a hacer un chequeo base por ejemplo.
En realidad lo que hace aquí es les metió en juego la bola se va a empezar a mover cuando vayamos a
armar nuestra pantalla nuestra bola se va a empezar a mover vamos a ver.
En la rutina de algoritmos que va a chequear esta variable si estoy en juego la mueve si no la deja
donde está.
Y aquí voy a lo que voy a hacer es jugar con los sonidos voy a detener la música inicial del juego voy
a empezar a ejecutar los sonidos y lo que hago es precisamente empezar a ejecutar uno de los sonidos
lo de los sonidos lo vamos a ver en otro no quiero que mezclemos programación con sonidos así que aquí
van a ver dos instrucciones más las vamos a ver luego lo importante es que ustedes entiendan que lo
que hice es sestear una variable como una bandera como diciendo A partir de ahora ya estoy en juego
y el motor luego va a detectar esa variable y me va a mover la base y la bola al mismo tiempo.
Bueno yo les dije que el motor va a detectar la base para eso yo tengo que chequear base esta rutina
lo que va a hacer es chequear el movimiento chequear el teclado va buscar si yo pulsé alguna de las
flechas y si la pulsé lo que va a hacer es mover mi base de un lado al otro.
Esto es muy útil lo van a ver cuando veamos chequeo base.
Recuerden que ahora lo que estamos haciendo es crear un esqueleto o un esquema de qué es lo que va a
ser nuestro motor todo este es nuestro motor de juego.
Todo esto es nuestro motor de juego ok.
Perdón yo metí chequeo base afuera y chequeo base adentro del Weyl.
Este es el Wahl más importante yo estoy jugando aquí.
Este es el Wille del juego es el más importante y por cada iteración yo voy a tener que chequear todo
la bola la base los ladrillos voy a tener que chequear todo.
Entonces nosotros vamos a tener en juego nuestra variable en juego y aquí pregunta si estoy en juego
o voy a tener que hacer cosas.
Recuerden esto si estoy en juego voy a tener que hacer cosas.
Qué es lo que voy a tener que hacer.
Una rutina muestra ladrillos y una rutina.
Muevo bolas por cada iteración va a chequear la base para saber en qué posición ponerla va a tener que
mostrar los ladrillos.
Esto lo va a ejecutar cientos y cientos de veces por segundo y va a estar mostrando nuestros ladrillos
y va a mover la bola.
La bola está constantemente en movimiento cuando estoy en juego esa es la utilidad de esto.
Si la bola no está en juego la bola queda fija pegada a la base es que acabo de iniciar un nuevo nivel
o acabo de perder y todavía no la despegué con la barra espaciadora lo van a ver bien cuando lo juguemos
y van a entender esta parte.
Si la bola está en juego significa que está despegada de la base y se está moviendo.
Entonces la voy a tener que mover.
Voy a tener una rutina donde voy a hacer los cálculos y voy a tener que poner en esta rutina la detección
de colisiones muy bien qué es lo que vamos a hacer ahora una vez que nosotros tenemos un juego.
Yo lo que hice después lo voy a agregar es una tecla más que la tecla cero para ir pasando de nivel
e ir probando el juego cuando ustedes estén desarrollando van a querer ir probando cómo cambia de nivel
cómo se ven los otros niveles no van a tener que jugarlo y estar 20 minutos para cambiar de nivel para
ver cómo se ve.
Es un atajo que después lo voy a poner para que ustedes lo vean bueno muy bien.
Ahora vamos a colocar una rutina llamada chequeo de Class sonido cuáles son las teclas de sonido de
la tecla Lilit y la tecla Tab para poder silenciar nuestros sonidos y silenciar la música los efectos
y la música.
Esa rutina lo que va a hacer es por cada iteración chequea el usuario tecleó a la tecla Tab.
Bueno ahí va ejecutar y mover la variable de efectos y de música en Truan Ford para poder escuchar los
sonidos muy bien después.
Por último la más importante de todas armo pantalla por qué.
Porque ellos ya moví la bola pero mover la bola significa le movía a las coordenadas x se le movía un
valor.
Luego lo que voy a tener que hacer es una vez que ya tengo las nuevas coordenadas tanto de la base como
de la bola y encima sé si se han borrado o no ladrillos voy a tener que armar toda la pantalla nuevamente
y armo pantallas ya lo vimos la pantalla va a borrar el buffer y va a volver a dibujar.
Todo esto es lo que hace nuestro juego.
Esta es la estructura básica de nuestro juego le vamos a ir agregando obviamente muchísimo hay muchísimo
muchísimo muchísimo.
Entonces la última cosa que voy a hacer es preguntar si vidas es igual a cero entonces FEEM juego de
nuevo.
Si ustedes no hacen esto si no hacen esto el programa lo que va a hacer es ponerle las vidas en negativo
menos Urban no va a terminar nunca el juego.
Esto es lo que haces pone fin al juego viene a cada vida es mayor a cero no es igual a cero se va un
juego se va inicial hizo y me voy de vuelta a mi estructura Mayne para seguir dándole forma a nuestro
juego.
Vamos al próximo capítulo y seguimos armando nuestro código.