Bueno ya tenemos nuestro primer programa nuestra estructura de incluso y el nombre del país.
Y una cosa muy importante yo me equivoqué al grabar porque al grabar yo lo que hice fue colocar solo
el nombre y me faltó colocar la extensión.
Si yo no le coloco extensión el codo de blogs me graba un archivo de C C++.
Esto es muy importante fíjense que comparten el mismo tipo de archivo.
Entonces si ustedes no le colocan punto CPP de plus plus el programa no se da cuenta de que es un archivo
C++ y cuando quieran ejecutarlo les va a dar error por las diferencias que tienen entre lenguajes muy
bien.
Una vez que tenemos nuestros dos archivos borramos el que no nos sirve y ahora tenemos nuestro archivo
de C++ que es Arca.
Fíjense que aquí ya le pone CPP muy bien lo que vamos a hacer ahora es crear nuestra estructura básica
para que el programa pueda ejecutarse.
El programa de C++ cualquier programa C++ empieza la ejecución en una en un método llamado Mayne y si
o si hay que colocarlos si no está este método no sabe por dónde empezar a ejecutarse.
Entonces vamos a colocar un método que va a devolver un entero que es de tipo Main sin argumentos vamos
a abrir llaves en C++ se utiliza esto cada vez que tenemos que ejecutar un código en alguna estructura
que puede ser inclusive una sentencia de condición.
Hay que colocar las llaves y es muy importante porque yo ahora podría correrlo y me va a dar un error
fíjense que me da un error que no tiene definido el win Main arroba 16 esto ustedes van a volverse loco
no van a encontrar qué es lo que está mal pero en C++ todos los Moine.
Además de terminarlo con las llaves hay que terminarlo con un una estructura llamado en llamada end
of main así liso y llano int main.
End of Meini todo va a ocurrir aquí adentro por supuesto de aquí yo voy a poder llamar a rutinas que
voy a programar todo por aquí abajo nuestro desarrollo y nuestro juego tiene más de quinientas líneas
así que fijense todo lo que vamos a hacer.
Bueno muy bien y aquí yo ya puedo correr me va a abrir una ventanita de ejecución que puse mal
perdón.
End of Maine.
Es una función.
No es un me faltaron los paréntesis muy bien.
Me abre la ventanita le doy a Enter y terminó la ejecución.
Todavía no hizo nada no mostré nada.
No hay en ejecución nada lo que vamos a hacer ahora es declarar todas las variables que vamos a usar
en el desarrollo del juego y se las voy a explicar.
Primero voy a definir un par de constantes voy a definir un par de constantes que van a definir mi ancho
y mi alto de pantalla yo lo voy a hacer de 1024 por 40
todas las instrucciones tienen que terminar.
Perdón en este caso no las constantes no terminan con punto y coma las instrucciones regulares sí y
las declaraciones regulares sí.
Bueno tengo definida mis constantes todas se definen con define y luego nos llevan punto y coma.
Vamos a definir ahora las variables no los objetos.
Todavía no vamos a crear ni las imágenes ni los sonidos.
Vamos a declarar las variables que vamos a usar en nuestro juego.
Primero vamos a crear una variable llamada retardo que va a ser de tipo entero y le vamos a poner un
100 qué se hacían son 100 milisegundos que vamos a ejecutar de retardo mientras nosotros integramos
con nuestro programa la vamos a usar o no después vamos a saber qué metodología usamos ustedes crean.
Porque a ustedes les va a servir en el caso de que ustedes quieran incorporar algún tipo de retardo
en el juego para hacer animaciones y demás.
Yo lo uso con el tema de la animación.
Van a ver la animación de por ejemplo cuando la base explota.
Luego vamos a crear una y un entero llamado vidas que es ni más ni menos que la cantidad de vidas que
voy a tener por juego que ustedes quieren que el juego tenga cinco vidas en lugar de tres modifican
ese dato y listo ya su juego se adapta a lo que ustedes crean acá.
Vamos a crear otra variable entera llamada Leiber que es nuestro.
Nuestras pantallas nuestro nivel y empieza el juego en el leiv el número uno en el level número uno.
Luego SCORM que es el puntaje obviamente lo inicializar con un cero muy bien.
Ahora vamos a llamar a un tipo de dato booleano o sea al vulcanos tienen Truong Fools verdadero o falso
son los únicos dos valores posibles y vamos a crear una variable llamada juego iniciado por qué juego
iniciado son banderas para darme cuenta que si el juego no se inicio hay ciertas cosas que no voy a
poder hacer ahora una vez que el juego está iniciado lo voy a colocar Tru y va a haber unas rutinas
que van a correr cuando el juego esté iniciado.
Cuando el juego todavía no inicio por ejemplo no voy a poder mover mi base con mi pelotita va a estar
ejecutándose seguramente la música de inicio y el juego todavía no se inició.
Todavía no tengo que ir moviendo la bola ni mostrando ladrillos ni nada es el inicio del programa Vamos
a crear otra muy importante que es fin para determinar si se terminó con el juego o no para darle salida
al programa no voy a tener siempre el programa en pantalla yo voy a aceptar que cuando el usuario le
da pulsa la tecla Escape el programa se detenga y se cierra en todo el juego cuando el usuario le pull
pulsa la tecla Escape.
El juego se tiene que cerrar en la manera de salir del juego no va a estar siempre corriendo el juego
muy bien vamos a crear otra nuevo nivel.
También es una vagaban una bandera que la vamos a usar durante el desarrollo para indicar si estamos
corriendo con un nuevo nivel o no es para que supongamos que yo ya terminé de destruir todos los ladrillos
en ese momento voy a tener que tirar esta bandera porque tengo que ejecutar un nuevo nivel pasar de
pantalla como se dice en los videojuegos y ahí cuando detecta que ya no tener ladrillos pendientes de
romper se ejecuta un nuevo nivel va a ejecutar una serie de rutinas por ejemplo limpiar la pantalla
dibujar nuevos ladrillos ejecutar una música ejecutar un sonido que tiene que ver con pasar de nivel
y demás.
Esta es muy parecida al juego iniciado pero me indica si estoy en medio de un nivel jugando no si el
juego se inició si el juego se inició significa que yo ya del principio cuando le di la tecla Enter
ya empecé a jugar y juego iniciado porque puede estar detenido porque perdí y estoy moviendo mi base
esperando a desplazar la bola.
Ustedes van a ver que con la tecla del espacio van a poder despegar la bola de la base y que empiece
a romper ladrillos.
Ahí es donde voy a aceptar que estoy en juego ya la bola está en el aire y ahí voy a aceptar entró mi
variable en juego vamos a poner un entero vamos a meter la dirección y la vamos a sestear en uno.
Ahora voy a explicarles qué es esto diré x 1 y lo voy a tener en menos 1.
Qué es esto.
Esto es la dirección que tiene que tomar nuestra bola.
Ustedes saben que las coordenadas son X entonces las coordenadas con las que nuestra bola se va a tener
que desplazar tener que decir si la abuela está subiendo o bajando y está bajando significa que la cé
está incrementándose en positivo.
Si yo arranco desde el tope superior de la pantalla desde aquí y le digo que la bola va a ir bajando
el número el valor de llevá ir aumentando.
Esta es la posición cero.
Y esta es la posición no sé 324 significa que se está bajando como cuando comienzo la bola va a ir subiendo
y bajando ya CTO esta variable con menos 1 le va a decir al motor que la bola en realidad no está bajando
sino que está subiendo y X en los colocón 1 para que se vaya desplazando hacia la derecha.
Al comenzar a hacer este movimiento este movimiento la bola si yo quisiera al revés que mi bola comenzara
saliendo hacia la izquierda X también tendría que ser menos 1 para que la posición en la que la bola
se encuentra inicialmente empiece a restarse y achicarse el número de x y entonces me voy a ir acercando
al borde izquierdo se entiende esto esto lo vamos a ver bien en el momento en que veamos el algoritmo
de movimientos así que ahora por lo menos le dio una pequeña explicación de cuál es el sentido de esta
variable vamos a colocar una variable que si vamos a usar y quizás esta variable remplace luego retardo
que es la variable velocidad que es velocidad en realidad cuando yo tenga que mover mi base y mi bola
voy a tener que incrementarla o restarle un número.
Si yo quiero que mi bola se mueva de un pixel va a ser muy lento imagínense que va a ser muy lento porque
estamos hablando de entornos gráficos no de carácter de 80 columnas sino que estamos hablando de 1024
pixeles.
Entonces yo no puedo ir moviendo mi bola de un pixel porque me voy a aburrir porque la bola se va a
mover muy lento entonces yo la veo a una velocidad inicial de 3 pixeles y es lo que va a ir incrementando
tanto la bola como la base y yo voy a ir moviendo mi base de a 3 pixeles se entiende cual es la dificultad
que vamos a ir añadiendo cada vez que nosotros pasemos 5 niveles este valor se va a incrementar en 1
entonces luego de nuestra quinta pantalla nuestra bola se va a mover de 4 pixeles y la base lo mismo
cuando lleguemos al nivel número 10 se va a mover de 5 pixeles ustedes van a ver y van a notar la diferencia
es muchísima es notoria porque por cada ciclo del procesador donde yo voy a ir chequeando en qué posición
tengo que poner mi bola y voy a poner toda la detección de colisiones y demás ahí se va a ir moviendo
la bola y dibujando la pantalla cada 5 pixeles.
Muy bien esta es la variable velocidad vamos a continuar con conque con velocidad inicial es fundamental
porque este dato esta variable se va a ir incrementando y cuando quiera jugar nuevamente no puede arrancar
de 10.
Voy a tener que tener una variable llamada velocidad inicial que esta no va a cambiar nunca podría ser
una constante tranquilamente y de ahí mover el valor de velocidad inicial que siempre va a ser 3 a velocidad
arranco un juego nuevo arranca la velocidad de 3.
Entonces voy a mover esta variable en esta variable otra para inicializar el valor qué más tenemos una
variable de número de fondo.
Por qué.
Porque cada pantalla yo voy a tener una imagen de fondo que va a ir cambiando.
Entonces yo voy a ir incrementando este valor porque por qué yo no creé infinitos números de fondo.
Yo creé 5 fondos diferentes cuando pasemos al nivel 6 va a tener que volver a mostrar el fondo número
1.
Entonces qué voy a hacer.
Voy a ir jugando con esta variable le voy a ir sumando 1 y cuando es 6 Le muevo uno lo vamos a ver bien
cuando veamos el algoritmo de pantalla esto me va a permitir ir jugando con los fondos de pantalla.
Vamos a ver otra variable una Ana que es muerte para que para indicar que hubo una muerte la muerte
que es mi base.
La bola llegó al fondo y no tocó la base entonces ahí yo voy a sestear que muerte es igual a otro y
cuando detecta que muerte es igual a otro va a ser una serie de pasos va a dibujar la animación de la
base va a ejecutar un sonido más ejecutar un sonido de la base explotando y además me va a restar 1
en la variable de vidas Bida va a ser igual a lo que tenga menos uno pero todo eso lo voy a tener que
manejar con una bandera llamada muer muy bien no se preocupen si ahora no entiende mucho porque esto
lo vamos a ver bien en la práctica ahí van a entender el porqué de cada variable pero yo no quiero empezar
a explicar y tener que venir a crear una variable explicarles algo y decirles Bueno ahora vamos y creamos
tal variable.
Quiero ordenarlos de tal manera que ustedes ya tengan todo y después nos concentremos en el código en
cómo funciona y cómo hacerlo funcionar.
Ahora lo que tenemos es una serie vamos a tener un número entero que en realidad tiene secuencia muerte
le voy a grabar un 1 por qué secuencia a muerte porque la animación consta de cinco pasos entonces la
animación de la muerte de mi base es una animación que consta de 5 Gráficos el último gráfico en realidad
no es ningún gráfico me aparece la pantalla vacía donde estaba la base como que ya se destruyó y yo
todo eso lo voy a tener que ir preguntando por qué secuencia estoy porque si estoy en la primer secuencia
voy a mostrar mi base que se agranda.
La segunda secuencia Mi base se va a empezar a resquebrajar la tercer secuencia se empieza a despedazar
la cuarta secuencia directamente la base desaparece.
Son cuatro secuencias yo dije cinco pero son cuatro.
Bueno ahora vamos a crear variables booleanas por ejemplo música y le vamos a poner Tru.
Qué son estas variables son las variables que me va a permitir manejar si quiero el sonido o no. Recuerden
que yo puedo apagar el sonido no quiero la música me molesta no quiero los efectos de sonido ahí en
la imagen yo les mostré que hay dos teclas que es Lilit y Taub para poder apagar o prender el sonido.
Todo eso lo vamos a manejar con variables julianas efectos Trough.
En principio van a aparecer tanto la música como los efectos.
Después ustedes los van a poder apagar por programa.
Luego tenemos una variable booleana existe archivo.
Esto es para la parte final.
Van a ver cuando tengamos que leer nuestros discos de un archivo más allá de preguntar si el archivo
existe.
Si no existe lo tenemos que crear porque cuando ustedes arranquen el juego no va a existir un archivo
deejays corpulento dato lo va a grabar cuando terminen el juego va a detectar cuál es el máximo puntaje
que han hecho y van a grabarlo cuando lo tenga que grabar.
Va a tener que preguntar si existe y cuando arranca el juego también pregunta si existe porque si existe
me muestra el puntaje que tengo acumulado.
Eso lo manejo con una variable booleana de existe archivo muy bien tenemos un entero también precisamente
donde voy a grabar mi Jeux con lo voy a traer del archivo y donde lo voy a grabar lo voy a grabar una
variable entera una vez que lo grabé mi variable entera lo voy a mostrar por pantalla mi Aizcorbe es
tal tal número muy bien por ahí se hace un poquito largo este capítulo porque estamos creando las variables
y vamos a usar en el desarrollo.
Les pido un poquito de pasta base X es ni más ni menos en qué.
En qué coordenada x va a arrancar mi base en qué coordenada lo voy a poner en el centro.
Entonces tengo que indicarlo tengo que indicarle en qué coordenada va arrancar mi bola y se fijan arranca
un poquito casi en el centro de la base para que cuando arranca el juego la bola aparece arriba de la
base y obviamente voy a tener que declarar el parámetro sé de la bola y en este caso va a ser la posición
182 6:50.
Si yo ahora se los mostrara aparece la base en el medio de la pantalla y la bola exactamente arriba
en el medio.
Esa es la posición inicial cuando arranco el juego.
Por supuesto estos tres estas tres variables se van a ir modificando a medida que voy jugando.
Cuando yo con las teclas vaya moviendo mi base está este parámetro x va a ir subiendo o bajando la bola
lo mismo tanto x como iba a ir para un lado para el otro este número a ir modificándose.
Por qué le pongo un valor por defecto.
Porque cuando inicié va a tener que tener un valor va a tener que tener una posición inicial muy bien
voy a saltear ahora la declaración de la de los vectores donde voy a dibujar las pantallas porque eso
es más complejo y se los voy a explicar en el momento que veamos los ladrillos.
Ahora vamos a ir aún vamos a declarar simplemente un vector de 63 posiciones porque aquí va a haber
63 ladrillos la pantalla está dibujada con nueve columnas y siete filas.
Vamos a tener 63 ladrillos o posiciones por juego aquí lo que se va a hacer es se va a grabar aquí cada
vez que arranque una nueva pantalla se va a configurar aquí la posición de cada ladrillo por qué entero
porque adentro de lo que va a tener es un número el ladrillo amarillo es el número uno.
Un ejemplo no va a tener un valor de 1.
El espacio vacío es un cero en ladrillo verde por eso el 4 va a tener todo numérico ya lo van a ver.
Van a ver qué fácil que es armar una pantalla.
Van a ver que fácil no tiene que ver con los gráficos no tiene que ver con entorno gráfico ni vamos
a tener que definirle a cada ladrillo una posición y griega una posición X nada lo vamos a ver es una
es una metodología que les va a ayudar a crear pantallas y pantallas de manera sencilla.
Vamos a poner punta izquierda.
Esto es fundamental.
Punta derecha.
Por qué.
Porque mi juego va a correr en un gráfico y en un recuadro a la derecha tengo textos tecnólogos y a
la izquierda tengo un recuadro donde en esas en ese recuadro me tengo que mover la pelota la bola no
puede salir por afuera.
Entonces yo voy a tener que definir cuál es la punta izquierda porque como el recuadro tiene un borde
tengo que definir bien en qué pixel x arranca el recuadro y en qué píxel hasta qué píxel de la derecha
me puedo mover.
Eso lo vamos a aceptar en el momento de iniciar nuestra pantalla.
Luego tenemos una variable muy importante estas dos variables que vamos a ver son muy importantes yo
las voy a escribir y se las voy a explicar y es que cuando nosotros comencemos a mover nuestra bola
vamos a transformar esa posición X y C en una fila y columna.
Por qué.
Porque la detección de colisiones la vamos a hacer en nuestro vector.
Vamos a transformarlo vamos a preguntar si en la posición che y X hay un ladrillo no vamos a transformar
esa posición en una fila y columna para saber si en la fila 5 columna 3 en nuestra matriz hay un ladrillo
o hay un cero.
Si hay un Zeros que no hay nada y nuestra bola va a poder continuar su viaje ahora sí hay un número
distinto de cero significa que hay un ladrillo en ese momento va a tener que ejecutar el sonido que
tenga que ejecutar le va a mover a esa posición un cero y va redibujar nuestra pantalla y vamos a ver
que el ladrillo desapareció.
Todo esto lo vamos a ver bien cuando veamos el tema de la pantalla y los algoritmos de movimiento.
Por ahora estamos definiendo nuestras variables.
Esta también es muy importante vamos a definir un vector vamos a definir un vector y le vamos a grabar
estos valores.
Ahora voy a explicarles que estos valores son las filas en pixeles en la posición donde se van a grabar
se van a mostrar nuestros ladrillos a partir de la fila 20 la primera fila de nuestro vector en la fila
en posición 50 se dibuja nuestra segunda fila de ladrillos en la 80.
La tercera las 110 la cuarta y así sucesivamente hasta las siete posiciones y siete filas que dijimos
que tenían nuestros ladrillos en bandas muy bien.
Ahora lo que vamos a hacer es ir al próximo capítulo.
Aquí ya tenemos todo lo vamos a grabar vamos a ir al próximo capítulo y vamos a comenzar a declarar
nuestros objetos.
Espero que no se haya hecho muy tedioso al principio es mucho declarar mucho declarar y luego vamos
a ver que es todo ya explicar y hacerlo funcionar y van a ver en pantalla como va funcionando.
Nos vemos en el próximo capítulo.