1
00:00:02,870 --> 00:00:09,360
Bueno hoy toca el turno de armar la rutina jugar al menos la estructura básica esta rutina es la que

2
00:00:09,360 --> 00:00:12,450
más va a crecer a lo largo del desarrollo del juego.

3
00:00:12,450 --> 00:00:18,660
También vamos a crear muchas sus rutinas que van a ser cosas muy puntuales pero vamos a armar la estructura

4
00:00:18,660 --> 00:00:26,610
básica de jugar qué es lo que pasa en jugar va a tener que correr otra iteración otro Weyl.

5
00:00:26,760 --> 00:00:27,330
Por qué.

6
00:00:28,110 --> 00:00:34,380
Porque mientras yo estoy jugando se va a tener que ir armando mi pantalla una y otra vez para que para

7
00:00:34,380 --> 00:00:41,340
mostrar la posición de la bola para mostrar la posición de nuestra base y eso va a requerir una serie

8
00:00:41,340 --> 00:00:48,720
de pasos y además vamos a tener que inicializar ciertas variables antes de comenzar el juego porque

9
00:00:48,900 --> 00:00:54,360
yo voy a terminar un juego y voy a querer jugar nuevamente y cada vez que juegue cada vez que ejecute

10
00:00:54,360 --> 00:00:59,820
jugar va a tener que poner en valor inicial muchas variables.

11
00:00:59,820 --> 00:01:07,680
Por ejemplo vamos a comenzar con el level igual uno voy a empezar a jugar en el nivel 1 la pantalla

12
00:01:07,680 --> 00:01:15,630
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

13
00:01:15,630 --> 00:01:23,310
a comenzar yo seguramente vengo de un fin de juego anterior donde se puso en esta variable y la tengo

14
00:01:23,310 --> 00:01:27,870
que volver a poner en fold porque ahora va arrancar un nuevo juego muy bien.

15
00:01:28,320 --> 00:01:36,840
Ahora bien el Weyl y el Weyl recuerden que yo puedo jugar hasta que el usuario pulse escape pero no

16
00:01:36,840 --> 00:01:42,900
solo va a tener que detectar si pulso escape si el juego terminó porque ya me quedé sin vidas y apareció

17
00:01:42,900 --> 00:01:43,890
el game over.

18
00:01:43,890 --> 00:01:51,420
Voy a tener que salir de este Weyl para que luego le vuelve el control a la rutina de Main y Main va

19
00:01:51,420 --> 00:01:53,670
a saber qué hacer si terminó el juego.

20
00:01:53,670 --> 00:01:55,670
Luego lo vamos a ver ahora.

21
00:01:55,770 --> 00:02:06,510
Entonces yo voy a jugar mientras que no se haya pulsado la tecla Escape y además estos tunante en C++

22
00:02:06,960 --> 00:02:15,570
que no sé a fin de juego esta variable que yo acepté aquí como fouls va a dar todo y va como Not Pulse

23
00:02:15,570 --> 00:02:22,620
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

24
00:02:22,620 --> 00:02:24,510
desarrollo de nuestro juego.

25
00:02:24,810 --> 00:02:29,320
Muy bien ahora qué es lo que tenemos que hacer aquí.

26
00:02:29,400 --> 00:02:37,640
Vamos a ejecutar después le vamos a meter todo lo que tiene que ver con sonidos ahora me interesa la

27
00:02:37,820 --> 00:02:47,940
estructura la estructura de nuestro programa entonces nosotros vamos a tener que comenzar el nivel cada

28
00:02:47,940 --> 00:02:54,720
vez que Lev Leiber aumente o sea cada vez que terminó una pantalla y aumento de nivel voy a tener que

29
00:02:54,720 --> 00:03:00,840
hacer unas pequeñas instrucciones de inicialización de nivel no las vamos a desarrollar ahora porque

30
00:03:00,840 --> 00:03:06,810
la vamos a ir viendo conforme avancemos en el curso no vamos a ver todo en este capítulo vamos a ir

31
00:03:06,810 --> 00:03:13,950
creando la estructura ok ahora mientras Nyom esté en un solo nivel imagínense el nivel 1 la pantalla

32
00:03:13,950 --> 00:03:19,590
yo voy derrotando ladrillos los voy destruyendo yo voy a tener que iterar dentro de ese nivel.

33
00:03:19,620 --> 00:03:25,740
No voy a poder irme a otro nivel entonces yo voy a tener que hacer otro Weyl donde no hay un nuevo nivel

34
00:03:25,860 --> 00:03:31,710
van a ver que esta variable el nuevo nivel se va a poner en Tru cuando el sistema detecta que ya no

35
00:03:31,710 --> 00:03:37,290
hay más ladrillos por romper cuando yo constantemente estoy escaneando digo quedó algún ladrillo por

36
00:03:37,290 --> 00:03:38,130
romper.

37
00:03:38,130 --> 00:03:44,820
Cuando detecta que no hay ninguno va a poner Tru en la variable nuevo nivel y me voy a salir del nivel

38
00:03:45,180 --> 00:03:52,230
eso va a ser que caiga por este otro Weyl inicializar el nuevo nivel y vuelvo a jugar pero en un nuevo

39
00:03:52,230 --> 00:03:58,320
nivel se entiende esto hay una iteración adentro de otra porque es necesario entonces aquí voy a poner

40
00:03:58,380 --> 00:04:03,030
siempre voy a tener que chequear si se ha pulsado escape en todos los Weyl.

41
00:04:03,040 --> 00:04:03,470
Por qué.

42
00:04:03,480 --> 00:04:05,550
Porque es la premisa de mi juego.

43
00:04:05,670 --> 00:04:12,090
Si un usuario no quiere jugar más yo voy a tener que chequear que no haya pulsado escape en ningún momento

44
00:04:12,090 --> 00:04:19,380
y además voy a chequear si vida es mayor a cero porque quizás terminé de romper todos los ladrillos

45
00:04:19,440 --> 00:04:26,340
o perdí y vida se puso en cero y yo ya tengo que salir ya tengo que mostrar mi y mover tengo que parar

46
00:04:26,550 --> 00:04:32,760
ese juego y darle la posibilidad al usuario de arrancar un nuevo juego entonces mientras estas tres

47
00:04:32,760 --> 00:04:39,600
condiciones se cumplen que no es un nuevo nivel que no pulsó la tecla Escape y que tengo vidas todavía

48
00:04:39,690 --> 00:04:45,220
ahí voy a jugar en mi nivel por eso tengo todo esto en Uruguay separado.

49
00:04:45,240 --> 00:04:51,090
Todo va a transcurrir aquí cuando pasé de nivel cuando perdí las vidas o el usuario tocó escape.

50
00:04:51,120 --> 00:04:58,650
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

51
00:04:58,650 --> 00:05:04,500
la rutina a jugar y voy a caer en mi rutina inicio donde va a volver a chequear de que pulsó escape

52
00:05:04,590 --> 00:05:12,150
y terminé mi juego es una detección en cadena digamos bueno muy bien ahora ya estoy dentro de mi rutina

53
00:05:12,350 --> 00:05:15,600
de lo que tiene que ver con mi nivel qué es lo que voy a hacer.

54
00:05:15,600 --> 00:05:17,790
Voy a hacer un chequeo.

55
00:05:17,790 --> 00:05:24,210
Recuerden si ustedes se fijan en la imagen para comenzar el juego el usuario tiene que darle a la barra

56
00:05:24,210 --> 00:05:29,810
espaciadora para que para que se suelte la bola de la base y empiece realmente el juego.

57
00:05:29,880 --> 00:05:34,770
Entonces aquí voy a ser que si es igual aquí voy.

58
00:05:34,810 --> 00:05:40,390
O sea que pulsó la tecla Escape y por ejemplo en juego es igual a foul.

59
00:05:40,380 --> 00:05:42,280
Por qué pregunto si es igual a fouls.

60
00:05:42,300 --> 00:05:48,330
Porque si el usuario está en medio del juego y pulsa la tecla la barra espaciadora.

61
00:05:48,330 --> 00:05:52,320
Yo no puedo hacer nada no puedo ver recién ahí arrancar la animación.

62
00:05:52,320 --> 00:05:55,470
Esto es lo que va a hacer es poner en juego mi nivel.

63
00:05:55,470 --> 00:06:02,550
Voy a comenzar va a despegarse la bola de la base y va a comenzar una vez que comencé yo no puedo hacer

64
00:06:02,550 --> 00:06:09,150
lo mismo porque si no voy a estar iniciando el nivel una y otra vez con solo pulsar la tecla de la barra

65
00:06:09,150 --> 00:06:09,890
espaciadora.

66
00:06:10,200 --> 00:06:18,240
Entonces es muy importante que si estoy en juego es igual a fouls que es una variable que hemos declarado

67
00:06:18,240 --> 00:06:25,680
ya con un valor de por default default ahí si recién va a iniciar nuestro juego y no no se entiende

68
00:06:25,680 --> 00:06:31,650
tengo que hacer comprobaciones porque el chequeo de teclado es muy sensible y lo va a detectar en todo

69
00:06:31,650 --> 00:06:37,310
momento va a estar la bola moviéndose por la pantalla y yo voy a agarrar la barra espaciadora y ahí

70
00:06:37,530 --> 00:06:38,750
qué tiene que hacer nada.

71
00:06:38,790 --> 00:06:45,900
No tiene que tener ningún efecto porque yo ya estoy en juego cuando comienza el juego Fíjense cuando

72
00:06:45,900 --> 00:06:49,020
comienza el juego yo le muevo un Tru a partir de ahora.

73
00:06:49,110 --> 00:06:51,000
Esta es una rutina de única vez.

74
00:06:51,000 --> 00:06:56,250
Cuando entré ya después no va a volver a entrar porque la variable en juego ya es Trough y qué voy a

75
00:06:56,250 --> 00:06:56,960
hacer aquí.

76
00:06:56,960 --> 00:07:03,220
Aquí tengo que hacer todo lo que tiene que ver con mostrar voy a hacer un chequeo base por ejemplo.

77
00:07:03,240 --> 00:07:10,230
En realidad lo que hace aquí es les metió en juego la bola se va a empezar a mover cuando vayamos a

78
00:07:10,440 --> 00:07:15,290
armar nuestra pantalla nuestra bola se va a empezar a mover vamos a ver.

79
00:07:15,530 --> 00:07:21,270
En la rutina de algoritmos que va a chequear esta variable si estoy en juego la mueve si no la deja

80
00:07:21,270 --> 00:07:22,180
donde está.

81
00:07:22,410 --> 00:07:30,870
Y aquí voy a lo que voy a hacer es jugar con los sonidos voy a detener la música inicial del juego voy

82
00:07:30,870 --> 00:07:39,240
a empezar a ejecutar los sonidos y lo que hago es precisamente empezar a ejecutar uno de los sonidos

83
00:07:39,500 --> 00:07:46,610
lo de los sonidos lo vamos a ver en otro no quiero que mezclemos programación con sonidos así que aquí

84
00:07:46,610 --> 00:07:52,700
van a ver dos instrucciones más las vamos a ver luego lo importante es que ustedes entiendan que lo

85
00:07:52,700 --> 00:08:00,320
que hice es sestear una variable como una bandera como diciendo A partir de ahora ya estoy en juego

86
00:08:00,440 --> 00:08:06,420
y el motor luego va a detectar esa variable y me va a mover la base y la bola al mismo tiempo.

87
00:08:06,420 --> 00:08:12,920
Bueno yo les dije que el motor va a detectar la base para eso yo tengo que chequear base esta rutina

88
00:08:13,010 --> 00:08:20,330
lo que va a hacer es chequear el movimiento chequear el teclado va buscar si yo pulsé alguna de las

89
00:08:20,330 --> 00:08:25,460
flechas y si la pulsé lo que va a hacer es mover mi base de un lado al otro.

90
00:08:25,460 --> 00:08:28,580
Esto es muy útil lo van a ver cuando veamos chequeo base.

91
00:08:28,580 --> 00:08:33,710
Recuerden que ahora lo que estamos haciendo es crear un esqueleto o un esquema de qué es lo que va a

92
00:08:33,710 --> 00:08:37,020
ser nuestro motor todo este es nuestro motor de juego.

93
00:08:37,040 --> 00:08:39,640
Todo esto es nuestro motor de juego ok.

94
00:08:39,680 --> 00:08:43,700
Perdón yo metí chequeo base afuera y chequeo base adentro del Weyl.

95
00:08:43,700 --> 00:08:46,660
Este es el Wahl más importante yo estoy jugando aquí.

96
00:08:46,670 --> 00:08:52,880
Este es el Wille del juego es el más importante y por cada iteración yo voy a tener que chequear todo

97
00:08:52,970 --> 00:08:56,800
la bola la base los ladrillos voy a tener que chequear todo.

98
00:08:56,810 --> 00:09:03,770
Entonces nosotros vamos a tener en juego nuestra variable en juego y aquí pregunta si estoy en juego

99
00:09:03,790 --> 00:09:05,080
o voy a tener que hacer cosas.

100
00:09:05,090 --> 00:09:08,590
Recuerden esto si estoy en juego voy a tener que hacer cosas.

101
00:09:09,030 --> 00:09:10,250
Qué es lo que voy a tener que hacer.

102
00:09:10,280 --> 00:09:13,700
Una rutina muestra ladrillos y una rutina.

103
00:09:13,760 --> 00:09:20,150
Muevo bolas por cada iteración va a chequear la base para saber en qué posición ponerla va a tener que

104
00:09:20,150 --> 00:09:21,590
mostrar los ladrillos.

105
00:09:21,620 --> 00:09:29,060
Esto lo va a ejecutar cientos y cientos de veces por segundo y va a estar mostrando nuestros ladrillos

106
00:09:29,150 --> 00:09:30,740
y va a mover la bola.

107
00:09:30,740 --> 00:09:36,470
La bola está constantemente en movimiento cuando estoy en juego esa es la utilidad de esto.

108
00:09:36,560 --> 00:09:43,160
Si la bola no está en juego la bola queda fija pegada a la base es que acabo de iniciar un nuevo nivel

109
00:09:43,220 --> 00:09:49,610
o acabo de perder y todavía no la despegué con la barra espaciadora lo van a ver bien cuando lo juguemos

110
00:09:49,710 --> 00:09:51,300
y van a entender esta parte.

111
00:09:51,320 --> 00:09:54,810
Si la bola está en juego significa que está despegada de la base y se está moviendo.

112
00:09:54,820 --> 00:09:55,930
Entonces la voy a tener que mover.

113
00:09:55,970 --> 00:10:03,290
Voy a tener una rutina donde voy a hacer los cálculos y voy a tener que poner en esta rutina la detección

114
00:10:03,290 --> 00:10:09,380
de colisiones muy bien qué es lo que vamos a hacer ahora una vez que nosotros tenemos un juego.

115
00:10:09,410 --> 00:10:15,560
Yo lo que hice después lo voy a agregar es una tecla más que la tecla cero para ir pasando de nivel

116
00:10:15,690 --> 00:10:21,220
e ir probando el juego cuando ustedes estén desarrollando van a querer ir probando cómo cambia de nivel

117
00:10:21,230 --> 00:10:27,680
cómo se ven los otros niveles no van a tener que jugarlo y estar 20 minutos para cambiar de nivel para

118
00:10:27,680 --> 00:10:28,690
ver cómo se ve.

119
00:10:28,760 --> 00:10:32,390
Es un atajo que después lo voy a poner para que ustedes lo vean bueno muy bien.

120
00:10:32,390 --> 00:10:39,440
Ahora vamos a colocar una rutina llamada chequeo de Class sonido cuáles son las teclas de sonido de

121
00:10:39,430 --> 00:10:46,610
la tecla Lilit y la tecla Tab para poder silenciar nuestros sonidos y silenciar la música los efectos

122
00:10:46,610 --> 00:10:47,440
y la música.

123
00:10:47,450 --> 00:10:53,870
Esa rutina lo que va a hacer es por cada iteración chequea el usuario tecleó a la tecla Tab.

124
00:10:53,870 --> 00:11:01,340
Bueno ahí va ejecutar y mover la variable de efectos y de música en Truan Ford para poder escuchar los

125
00:11:01,340 --> 00:11:02,990
sonidos muy bien después.

126
00:11:02,990 --> 00:11:07,210
Por último la más importante de todas armo pantalla por qué.

127
00:11:07,220 --> 00:11:14,150
Porque ellos ya moví la bola pero mover la bola significa le movía a las coordenadas x se le movía un

128
00:11:14,150 --> 00:11:14,960
valor.

129
00:11:14,960 --> 00:11:20,210
Luego lo que voy a tener que hacer es una vez que ya tengo las nuevas coordenadas tanto de la base como

130
00:11:20,210 --> 00:11:28,100
de la bola y encima sé si se han borrado o no ladrillos voy a tener que armar toda la pantalla nuevamente

131
00:11:28,400 --> 00:11:32,780
y armo pantallas ya lo vimos la pantalla va a borrar el buffer y va a volver a dibujar.

132
00:11:32,780 --> 00:11:35,150
Todo esto es lo que hace nuestro juego.

133
00:11:35,150 --> 00:11:42,140
Esta es la estructura básica de nuestro juego le vamos a ir agregando obviamente muchísimo hay muchísimo

134
00:11:42,410 --> 00:11:44,510
muchísimo muchísimo.

135
00:11:44,690 --> 00:11:54,110
Entonces la última cosa que voy a hacer es preguntar si vidas es igual a cero entonces FEEM juego de

136
00:11:54,110 --> 00:11:54,780
nuevo.

137
00:11:54,950 --> 00:12:01,590
Si ustedes no hacen esto si no hacen esto el programa lo que va a hacer es ponerle las vidas en negativo

138
00:12:01,600 --> 00:12:04,170
menos Urban no va a terminar nunca el juego.

139
00:12:04,220 --> 00:12:11,110
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

140
00:12:11,120 --> 00:12:19,490
juego se va inicial hizo y me voy de vuelta a mi estructura Mayne para seguir dándole forma a nuestro

141
00:12:19,490 --> 00:12:20,360
juego.

142
00:12:20,360 --> 00:12:24,460
Vamos al próximo capítulo y seguimos armando nuestro código.
