Y vamos a continuar con el programa.
Quiero mostrarles algo que me ha ocurrido por una letra mal puesta quise ejecutar el programa y el programa
me daba error me daba error se me cerraba cuando cuando semas más detecta un problema no se cuelga todo
el programa el programa no responde hay que cerrarlo hay que colocarle algunas indicaciones para depurarlo
por ejemplo esto es lo que hace.
Yo tenía problemas en esta línea fijense yo puse un sonido remota base cuando lo había cargado cuando
lo había cargado había usado la palabra rebotã base pero el archivo punto WAV se va se llama rebote
base yo me fijé en el programa original.
Este es el programa original todo el código que estamos haciendo sale de aquí que es el programa que
yo desarrollé para que ustedes lo vean antes de que yo haga el curso.
Todo lo que estoy copiando sale de este desarrollo pero yo no puedo arrancar y empezar a explicarles
cada línea lo tengo que ir haciendo para que ustedes vean el paso a paso y yo me vine a fijar y digo
claro el rebote base y me daba error.
Entonces qué puse.
Puse estas instrucciones que son muy útiles que esto me manda a pantalla este texto antes de ejecutar
el play sample y luego ejecutaba de nuevo cuando salía para ver si realmente esta no era la línea.
El problema efectivamente era la línea el problema porque ejecutaba esto y cuando entraba aquí se colgaba
así que nunca llegaba a mostrar este mensaje con lo cual me daba la indicación de que esta era la línea
y luego hice un sistema passe que lo que hace se espera hasta que le doy una tecla cuando pulso una
tecla continúa el programa es una especie de pausa y me lo muestra en la primer ventanita vieron que
ustedes van a ver que hoy vamos a ver vamos aquí vamos a ejecutarlo vamos a ver el movimiento de nuestra
base y de la bola
y aquí es donde se cuelga.
Aquí es donde se cuelga en este momento no está colgado está esperando que yo presione una tecla para
continuar se entiende no es que está colgado ni está funcionando mal.
Cada vez que llega aquí me pide la pulsación de una tecla vamos a salir cuando ustedes tengan que mostrar
algo por pantalla van a usar esas instrucciones.
El CAT que manda lo que coloquen en menor menor colocan un texto se lo va a mandar a pantalla.
Esto es útil para ver el valor de una variable.
Para depurarlo y ver cómo está funcionando cuando algo no le funciona yo lo voy a quitar porque quiero
que mi juego funcione perfectamente.
Vamos ahora a correrlo quiero que ustedes vean bien lo que hemos hecho hasta ahora
bueno y ahí sí se fijaron.
Cuando llega al fondo no reproduce nada no me está mostrando ninguna animación no ejecuta ningún sonido
lo que vamos a hacer ahora es empezar a trabajar un poquito con eso vamos a ir a nuestra función main
que es lo que viene ahora después de jugar.
Yo tengo que hacer un mini pase y lo que tengo que hacer a continuación preguntar si efectos está habilitado.
Voy a ejecutar el sonido del Game Over porque perdí terminó de jugar.
Eso es lo que va a ejecutar con nuestros parámetros ya conocidos y iba a ejecutar el Game Over ok.
Ahora cuando yo ya terminé eso lo que voy a tener que hacer es.
Por supuesto voy a tener que poner vamos a jugar iniciado después de jugar vamos a insertar aquí y lo
que voy a hacer.
Voy a hacer un Weyl y voy a esperar hasta que se pulse la tecla Enter o la tecla Escape la tecla escape
mientras no se pulse va a entrar en un loop ahí esperando porque porque terminé de jugar y bueno está
esperando a ver qué quiero hacer si quiero salir del juego o quiero jugar nuevamente.
Bueno muy bien y qué va a hacer este guay.
Nada más estar esperando a que yo pulse una tecla Kiba detener la ejecución del juego lo voy a estar
esperando no va a correr ninguna otra instrucción más una vez que yo de Enter voy a llevar mis valores
a la normalidad.
Voy a poner vida en tres Lebel en gran velocidad qué voy a hacer.
Le voy a grabar lo que tenía en velocidad inicial.
Voy a volver a velocidad a a lo que ustedes definan en vez de colocar un 3 aquí voy a tener una variable
que cuando quieran ejecutar el juego en otra velocidad le mueven otro valor al valor por defecto de
esa variable y ya lo tengo solucionado y falta el escozor.
Le voy a mover un cero mi puntaje vuelve a cero.
Cuando esto termina cuando se ejecuta todo voy a ejecutar una nueva rutina que se llama destruyo componentes
destruyo componentes los va a sacar de memoria para que no quede la memoria sucia destruyo componentes
y lo que se hace aquí en destruyo componentes es lo que se llama la instrucción Destroy.
Vamos a verla.
La instrucción de Strait es una instrucción que se encarga de sacarnos de memoria todo.
Bueno voy a destruir MIDI voy a decirle que quite de memoria la música del juego esté o no ejecutándose
esto como habíamos creado un puntero lo que haces me libera memoria y luego voy a hacer un Destroy sampleo.
El sonido de inicio del juego y luego voy a hacer un Destroy de absolutamente todo.
Entonces vamos a copiar y no es sonido de inicio de juego será sonido inicio de nivel.
Luego tenemos otros sonidos por ejemplo ladrillo roto por ejemplo y así sucesivamente.
Cada uno de los sonidos lo ahora lo voy a no vamos a estar escribiendo todos.
Luego lo voy a completar.
Es más voy a venir aquí a mi.
Aquí tengo mi código original inclusive Wafer con un Destroy bitmap también queda destruido de memoria.
Vamos a ver si lo quieren hacer más exigente pueden destruir todos los bitmap que hay.
No es que Bandar mal si hacen o no hacen esto es más o menos liberar memoria y que el equipo no quede
con mucha memoria por si lo corren 26 veces si el juego va acumulando por cada juego memoria.
Para esto llega un momento que puede colapsar así todo.
Obviamente Windows tiene sus propias rutinas que van chequeando cuando un objeto en memoria quedó asignado
y ya no está en uso.
Vamos a ver el tema de la muerte la famosa Moar que vamos a dibujar nuestra muerte.
Nosotros tenemos 4 bitmaps que habíamos cargado de nuestra base.
Entonces lo que vamos a hacer cuando entramos en muerte vamos a decirle que muerte es igual a true.
Lo vamos a aceptar en thru y vamos a hacer un favor de secuencia a muerte es igual a 1.
Fíjense que yo aquí no declaro una variable porque secuencia a muerte ya existe.
Es una variable que ya la hemos declarado arriba entonces no tenemos que poner un int porque si yo creo
un int.
Si yo coloco aquí un link voy a estar creando una nueva variable llamada secuencia muerte que va a ser
solamente local de esta rutina.
Igual no me va a funcionar lo que yo quiero que funcione esta variable lo que va a hacer es incrementar
este foro una variable que ya existe la secuencia a muerte y le voy a decir que hasta qué secuencia
muerte sea a menos que va a ejecutar mientras sea menor a 5 por ejemplo y que secuencia muerte la tiene
que incrementar muy bien lo que va a hacer ahora es un arma pantalla nada más y nada menos que esto
y luego va a ser un slip de 200.
Esta instrucción me va a detener la animación durante 200 milisegundos si yo no coloco esto la secuencia
de la animación no la van a percibir va a ser tan rápida que no van a ver a nuestra base de esa armándose
por la explosión lo que van a ver es un destello que no se van a dar cuenta que entonces vamos a detener
la ejecución hacer una pausa durante 200 milisegundos y va a mostrar la otra secuencia.
Esto es lo que va a hacer es cambiar la variable secuencia a muerte y me manda arma pantalla entonces
el arpón el arma pantalla yo tengo que dibujar la secuencia a muerte vamos a ir a nuestro arma pantalla
que está aquí donde nosotros tenemos nuestra base aquí la tenemos pero ahora yo voy a tener que hacer
algo diferente.
Voy a tener que dibujar la muerte como dibujo la muerte.
Bueno vamos a nuestro arma pantalla y le vamos a colocar un switch obviamente vamos a primero a preguntar
si es muerte porque no tiene sentido que vayamos integrando es muerte.
Voy a hacer una cosa y poner sobre el dibujo nuestra base.
Normalmente como lo veníamos haciendo hasta ahora que se desplace libremente y con mucha salud.
Ahora qué pasa si es muerte.
Voy a tener que dibujar perdón si no es muerte.
Esto va al revés aquí arriba muy bien y ahora vamos a escribir un switch si es muerte vamos a escribir
un switch de que de qué va a ser a ver secuencia a muerte porque si se acuerdan que veníamos consecuencia
a muerte con 1 2 3 4 y le vamos a decir por ejemplo que iba a arrancar en nuestro switch que cuando
sea 1 va a ser un draw drop sprite de Buffer como base dos coma Basse X coma seis 55 fijense dos cosas
una que hablo de base 2 por qué no base por qué ahora voy a usar otro bitmap que es nuestro base 2 que
donde nuestra base se hace más grande porque se hincha porque va a explotar cuando va a explotar.
Lo primero que hago es dibujar una base más grande es la primera animación que hace y me la posición
en otro lugar me la posición un poco más arriba en las 6 60 sino que en las 6 55 para que parezca que
está creciendo muy bien luego hacemos el break y ahora vamos a repetir 5 veces cuando secuencia muerte
esté en la posición 2 de la animación ya tengo que dibujar otra cosa voy a dibujar base 3 y voy a dibujar
base 3.
Perdón aquí son tres animaciones no cinco.
Me entusiasmé va a dibujar base 3 y lo va a dibujar en la posición 6:50 lo sigo subiendo la base va
explotando cuando algo explota va hacia arriba.
Entonces mi base va explotando y no solo me da sensación de movimiento a los costados sino hacia arriba
también.
Luego en 3 cuando secuencia muerte es igual a 3 voy a mostrar base 4 y la voy a mostrar en las 6:40
más arriba todavía muy bien y cuando ustedes dirán Pero si Elif cuando es menor a 5 o sea que va a haber
un valor 4 ESO ES LO QUE NO SE ENTIENDE.
Va a haber un valor 4.
Fíjense qué pasa cuando hay un valor 4 primero llega acá y dices muerte si es muerte entonces esto no
lo dibuja.
Viene acá abajo y aquí abajo pregunta la secuencia 1 no las secuencias 2 no la secuencia 3 tampoco es
4 entonces no va a hacer nada.
Esa es la parte la parte 4 de la animación donde mi base desapareció no me dibujó nada venía creciendo
explotó y realmente desapareció.
Eso es porque nosotros preguntamos en nuestro foro hasta que sea menor a 5 va a llegar a 4 y en 4 no
va a hacer absolutamente nada vamos a secuencia a muerte.
Para verlo dibuja muerte secuencia a muerte todo está perfecto vamos a grabarlo y vamos a ejecutarlo
vida que no le gustó pero donde destruyo componentes no fue declarado así que voy a crearlo en mi asco
ahí está pero vida no le gusta.
Bueno ahí vamos a continuar aquí me dio un error porque vida no es vidas en plural así que vamos a ejecutar
nuestro nuestro programa a ver cómo está funcionando le faltan algunas cositas.
Vamos a ver nuestro juego lo vamos a ejecutar
vamos a ir al programa nuevamente vamos a ir a nuestra muerte dibujamos arte y una vez que terminó la
secuencia yo tengo que dejar la variable como estaba tengo que poner Fours porque si no para el programa
siempre estoy muerto.
Por eso no me muestra la base porque es secuencia a muerte quedan cuatro muertes quedan truc y siempre
armo pantalla quedó absolutamente muerta nuestra base y ocultã entonces lo que voy a hacer ahora es
aparte de poner muerte en fold.
Voy a ir a mi rutina maestra de arma pantalla vamos a ver otra cosa que es que no está saliendo el sonido
inicial porque nos lo hemos sitiado en nuestra rutina.
Inicio vamos a ir a colocarle el sonido del juego que no aparece porque por algo no aparece y vamos
a ir a la rutina de inicio.
Inicialización recuerdan que nosotros tenemos una rutina que es inicial hizo vamos a seguir a esa rutina
inicial hizo muy bien y aquí es donde yo voy a colocar el sonido.
Nosotros tenemos inicializar pantalla inicializar sonidos y tenemos que agregar además el play Midi
el play midi de que nuestra música inicio y le voy a decir a mi play MIDI.
Le voy a poner un cero significa que no va a entrar en loop se va a ejecutar una sola vez se va a ejecutar
una sola vez hasta que alguien le dé Enter.
Vamos a probarlo vamos a ver
y esa es nuestra música inicio.
Vamos a darle enter y vamos a ver que arranca otra música.
Vamos a iniciar una
ahí se ve cómo nuestra base retorna a la vida.
Muy bien ya tenemos prácticamente casi todo hecho.
Vamos a agregar una última cosa que es el tema de los tipos de letra y el tema de la carga de archivos
que es muy importante y lo vamos a ver en el próximo capítulo.