1 00:00:00,000 --> 00:00:07,480 Y el propósito de hoy va a ser intentar resolver la tarea cero que dejamos pendiente, que me 2 00:00:07,480 --> 00:00:12,740 sirve también para que sigamos introduciendo ciertos conceptos y si surgen dudas pues me 3 00:00:12,740 --> 00:00:15,380 vais comentando, ¿de acuerdo? 4 00:00:15,380 --> 00:00:19,340 El enunciado de esta tarea, a diferencia de otros, es más o menos corto, por eso lo voy 5 00:00:19,340 --> 00:00:21,940 a leer un poco más en detalle para ir desglosándolo, ¿vale? 6 00:00:21,940 --> 00:00:27,780 Que es un poco, creo también, el planteamiento que deberíamos hacer de cara a nuevas tareas, 7 00:00:27,780 --> 00:00:32,260 o estemos viendo los enunciados, etcétera, que tiene muchos ítems, mucho contenido, 8 00:00:32,260 --> 00:00:36,140 pero bueno, se trata de ir poco a poco, ¿vale? 9 00:00:36,140 --> 00:00:41,780 Entonces, básicamente lo que se quiere conseguir es, de una forma no muy visual, imagina un 10 00:00:41,780 --> 00:00:45,300 juego de acción en el que el jugador maneja una nave espacial a través de un campo de 11 00:00:45,300 --> 00:00:46,300 asteroides. 12 00:00:46,300 --> 00:00:49,860 Esto visualmente no se va a ver, sirve para dar un contexto, pero no se va a ver. 13 00:00:49,860 --> 00:00:53,820 Entonces, vamos a tener una nave que va a ir por un campo de asteroides y va a ir recibiendo 14 00:00:53,820 --> 00:00:54,820 impactos, ¿no? 15 00:00:54,860 --> 00:00:58,660 Si recibe uno de estos impactos, su escudo se reducirá en una magnitud igual a la fuerza 16 00:00:58,660 --> 00:00:59,660 del impacto. 17 00:00:59,660 --> 00:01:04,460 Vale, aquí cuando vamos analizando, yo siempre recomiendo hacer una primera leída, ¿no? 18 00:01:04,460 --> 00:01:10,500 Y luego ya ir al detalle, pero primero una leída general para tener todo el concepto, 19 00:01:10,500 --> 00:01:15,100 aunque ni siquiera similemos bien lo que se nos pide, viene bien, porque luego puede haber 20 00:01:15,100 --> 00:01:21,180 más cosas que tener en cuenta que si no leemos y vamos primero parte a parte, pues nos vamos 21 00:01:21,180 --> 00:01:22,180 perdiendo, ¿vale? 22 00:01:22,180 --> 00:01:26,020 Bueno, ya está enunciado, entiendo que lo leeríais ya, entonces voy a ir un poco rápido, 23 00:01:26,020 --> 00:01:27,020 pero vamos. 24 00:01:27,020 --> 00:01:31,780 Lo que quiero que vayamos señalando es qué tipo de variables o qué, digamos, elementos 25 00:01:31,780 --> 00:01:33,460 vamos a tener en este código, ¿no? 26 00:01:33,460 --> 00:01:38,020 Para empezar, cuando tenemos esta nave, va a existir lo que se llama el impacto, va a 27 00:01:38,020 --> 00:01:43,660 haber un escudo que se irá reduciendo en magnitud igual a la fuerza del impacto, ¿vale? 28 00:01:43,660 --> 00:01:48,060 En otros días ya estuve diciendo, al final todo lo que vaya ocurriendo al programar o 29 00:01:48,060 --> 00:01:52,460 gran parte de ello se va a basar en cálculos matemáticos, ¿no? 30 00:01:52,460 --> 00:01:57,420 Que por eso habíamos empezado a ver operadores, sumas, cómo ir asignando variables, algunos 31 00:01:57,420 --> 00:02:03,780 tipos de variables, entonces ya podemos incluso en una hoja o lo que voy a hacer ahora mismo, 32 00:02:03,780 --> 00:02:07,340 que va a ser crear, por ejemplo, una nueva escena, ¿no? 33 00:02:07,340 --> 00:02:12,220 Cuando vamos trabajando en distintos proyectos o en distintos niveles de un mismo proyecto, 34 00:02:12,220 --> 00:02:13,220 ¿vale? 35 00:02:13,220 --> 00:02:15,380 Están, ya lo habréis visto, lo que se llama la escena, ¿no? 36 00:02:15,380 --> 00:02:18,660 Es donde vais creando la jerarquía de GameObjects, ¿vale? 37 00:02:18,660 --> 00:02:22,660 Y aquí aparece el nombre de esa escena, Tutoría UT1, ¿vale? 38 00:02:22,660 --> 00:02:26,340 Pero podéis ir creando más, es decir, yo aquí tengo esta UT1, pero luego tengo una 39 00:02:26,340 --> 00:02:31,500 que hice de pruebas código y tengo, cuando la cargo, pues aquí se carga y tenemos aquí 40 00:02:31,500 --> 00:02:35,340 los distintos GameObjects, ¿vale? 41 00:02:35,340 --> 00:02:39,100 Para ir trabajando, digamos, como va a ser algo independiente a lo que estaba haciendo 42 00:02:39,100 --> 00:02:40,100 el otro día, ¿vale? 43 00:02:40,100 --> 00:02:42,140 Pues voy a hacer un nuevo, ¿vale? 44 00:02:42,140 --> 00:02:48,020 Con un clic derecho creamos un nuevo y buscamos, de todas las opciones que tenemos aquí, una 45 00:02:48,020 --> 00:02:49,340 nueva escena, ¿vale? 46 00:02:49,340 --> 00:02:58,660 La nueva escena se guardará en la misma carpeta en la que hemos estado generando las escenas, 47 00:02:58,660 --> 00:02:59,660 donde la hemos creado, ¿vale? 48 00:02:59,660 --> 00:03:03,260 Si recordad que si luego vais al proyecto, a la estructura de carpetas de Windows o de 49 00:03:03,260 --> 00:03:06,780 Mac, pues esto aparece replicado en el proyecto, ¿vale? 50 00:03:06,780 --> 00:03:11,700 Pues esto va a ser Tarea UT0, lo voy a llamar así para que sea identificativo. 51 00:03:12,260 --> 00:03:17,460 Pues me meto ahí y tengo la escena, digamos, virgen para ir trabajando, ¿no? 52 00:03:17,460 --> 00:03:22,140 Y como todo esto va a ser visual, digo, más que visual, va a ser programación pura y 53 00:03:22,140 --> 00:03:23,140 dura, ¿vale? 54 00:03:23,140 --> 00:03:28,500 No vamos a ver, en este caso, no se pide la parte visual de este juego de asteroides. 55 00:03:28,500 --> 00:03:30,860 Voy a generar un nuevo script, ¿vale? 56 00:03:30,860 --> 00:03:34,740 Que va a ser donde voy a ir desarrollando todo el código, ¿no? 57 00:03:34,740 --> 00:03:40,260 Pues por ejemplo lo voy a llamar Tarea UT0, ¿vale? 58 00:03:40,260 --> 00:03:43,940 Y lo que va a ser es el script en el que yo voy a ir trabajando ese código que va 59 00:03:43,940 --> 00:03:48,300 a ir generando la mecánica que se pide, ¿no? 60 00:03:48,300 --> 00:03:52,260 Y entonces, ya hemos estado viendo anteriores días y ya lo habéis hecho, por ejemplo, 61 00:03:52,260 --> 00:03:54,060 la primera tarea, ¿vale? 62 00:03:54,060 --> 00:03:59,180 Que lo primero que tenemos que ir declarando son esas variables, esas cajas con las que 63 00:03:59,180 --> 00:04:00,500 vamos a ir operando, ¿no? 64 00:04:00,500 --> 00:04:07,620 Y en este caso ya, pues por ejemplo, nos han comentado que va a haber un escudo, ¿vale? 65 00:04:07,860 --> 00:04:11,300 Que va a tener una energía, ¿no? 66 00:04:11,300 --> 00:04:13,660 Pues que va a tener la nave, ¿vale? 67 00:04:13,660 --> 00:04:17,860 Que ya diremos que empiece con un nivel, ¿no? 68 00:04:17,860 --> 00:04:21,820 Un número, una vida, pues por ejemplo el 100% o 100 puntos, ¿no? 69 00:04:21,820 --> 00:04:23,780 Algo así, ¿vale? 70 00:04:23,780 --> 00:04:24,780 Ya sabemos que hay un escudo. 71 00:04:24,780 --> 00:04:27,900 Da error porque de momento no sabemos de qué tipo es la caja, ¿vale? 72 00:04:27,900 --> 00:04:34,260 Sí que sabemos cuando vamos viendo el enunciado, sí que vamos viendo al ir leyendo que va 73 00:04:34,260 --> 00:04:36,940 a haber como sumas y restas de números, ¿no? 74 00:04:36,940 --> 00:04:41,660 Porque al final la fuerza, esa cantidad de fuerza que va a tener el impacto, pues al 75 00:04:41,660 --> 00:04:46,700 final la forma de representarla que tenemos es a partir de un número, ¿no? 76 00:04:46,700 --> 00:04:51,580 Entonces también, luego lo podemos borrar fácilmente, pero igual que tenemos un escudo 77 00:04:51,580 --> 00:04:54,780 va a haber una variable o va a haber una cifra, ¿vale? 78 00:04:54,780 --> 00:04:57,580 Que vamos a ir jugando, que es el impacto del meteorito. 79 00:04:57,580 --> 00:04:58,820 Le voy a poner impacto, ¿vale? 80 00:04:58,820 --> 00:05:03,820 Porque como no hay más impactos que la nave no va a disparar ni nada, lo pongo impacto. 81 00:05:03,820 --> 00:05:07,180 Nuevamente, estamos abriendo una caja que todavía no le estamos diciendo de qué tipo. 82 00:05:07,180 --> 00:05:08,900 Hasta que no lo hagamos esto dará error. 83 00:05:08,900 --> 00:05:11,300 Simplemente estoy como enunciando elementos, ¿vale? 84 00:05:11,300 --> 00:05:15,540 Para ir teniéndolos aquí como variables globales que ya vimos el otro día, que son 85 00:05:15,540 --> 00:05:21,180 las que están al comienzo de la clase y que no se nos vaya pasando e ir estructurando 86 00:05:21,180 --> 00:05:23,980 un poco qué vamos a buscar, ¿no? 87 00:05:23,980 --> 00:05:27,740 Luego dice, si esa magnitud es superior a la fuerza del escudo que le queda, se le restará 88 00:05:27,740 --> 00:05:28,740 una vida. 89 00:05:28,740 --> 00:05:31,260 Por tanto, hay vidas en este juego, ¿vale? 90 00:05:32,260 --> 00:05:37,180 Yo sé que va a haber en algún momento que vamos a tener que decirle si tiene una, tres, 91 00:05:37,180 --> 00:05:38,540 siete vidas, ¿vale? 92 00:05:38,540 --> 00:05:39,540 Pues ya voy generando ahí. 93 00:05:39,540 --> 00:05:44,620 Es buena práctica que como ya sabemos que son números, es decir, no va a haber que 94 00:05:44,620 --> 00:05:48,140 introducir un texto ni se va a operar con un texto, sabemos que estas variables van 95 00:05:48,140 --> 00:05:54,380 a ser de tipo numérico, pues ir guardándolas como variable de tipo numérico, ¿no? 96 00:05:54,380 --> 00:05:59,580 Ya vimos que podía ser un número entero o podía ser un número, un float, ¿no? 97 00:05:59,580 --> 00:06:02,540 Es un número que permite también decimales. 98 00:06:02,540 --> 00:06:03,540 ¿Qué problema tiene? 99 00:06:03,540 --> 00:06:07,460 Pues, por ejemplo, el número de vidas, luego, por supuesto, podemos volver y cambiar, pero 100 00:06:07,460 --> 00:06:12,700 el número de vidas normalmente va a ser uno, tres, pero no va a ser tres con dos vidas, 101 00:06:12,700 --> 00:06:13,700 ¿no? 102 00:06:13,700 --> 00:06:17,220 Entonces, eso ya nos deja deducir que el tipo de variable que nos interesa aquí sería 103 00:06:17,220 --> 00:06:18,220 un int, ¿no? 104 00:06:18,220 --> 00:06:21,860 A menos que luego veamos que necesitamos, que ahí vendríamos y lo cambiaríamos sin 105 00:06:21,860 --> 00:06:22,860 problema. 106 00:06:22,860 --> 00:06:28,420 El impacto y el escudo, si seguimos leyendo, no define nada de cómo debe hacer, ¿vale? 107 00:06:28,420 --> 00:06:31,660 Así que se define si es la última vida que le queda de las iniciales, que pueden 108 00:06:31,660 --> 00:06:33,580 ser tres, por ejemplo, ¿vale? 109 00:06:33,580 --> 00:06:37,780 De primeras, vamos a decir que van a ser tres vidas, ¿vale? 110 00:06:37,780 --> 00:06:43,260 Recordad que cuando declaramos esta variable, también podemos decir ya la caja con cuántos 111 00:06:43,260 --> 00:06:47,180 elementos, en este caso, cuántas vidas tendría, ¿vale? 112 00:06:47,180 --> 00:06:49,620 De momento lo defino así, ¿vale? 113 00:06:49,620 --> 00:06:52,600 Este juego va a tener la nave tres vidas, ¿vale? 114 00:06:52,600 --> 00:06:58,880 Si en algún momento recordad que estas variables no sabemos a qué se refieren, no son descriptivas, 115 00:06:58,880 --> 00:07:05,160 siempre podemos decir lives o vidas, nave, ¿vale? 116 00:07:05,160 --> 00:07:10,440 Importante, algunos os corregí que las variables, no los métodos que si veis empiezan con mayúscula, 117 00:07:10,440 --> 00:07:14,480 las variables siempre deberían empezar, tal y como estamos estableciendo la convención, 118 00:07:14,480 --> 00:07:15,480 con minúscula. 119 00:07:15,480 --> 00:07:21,520 Y para separar palabras usamos esta mayúscula, ¿vale? 120 00:07:22,520 --> 00:07:26,480 En cualquier caso, siempre saldrá un aviso en pantalla indicando lo que ha ocurrido, 121 00:07:26,480 --> 00:07:29,680 si se ha reducido un escudo, si se le ha quitado una vida o si ha muerto. 122 00:07:29,680 --> 00:07:33,760 Esto lo puedes hacer mandando un mensaje a consola, mediante el método print o el método 123 00:07:33,760 --> 00:07:35,000 debug log. 124 00:07:35,000 --> 00:07:36,000 Son análogos. 125 00:07:36,000 --> 00:07:40,440 Hasta ahora, el resto de días, hemos estado viendo debug logs, ¿vale? 126 00:07:40,440 --> 00:07:45,480 Entonces, vamos a usar en cierto momento el debug log para ir informando de lo que ocurre, 127 00:07:45,480 --> 00:07:49,080 tened en cuenta que a diferencia de las tareas que estamos haciendo, como no va a haber un 128 00:07:49,080 --> 00:07:55,160 resultado visual, lo que vamos a ir viendo es, en consola, si se va sumando, si va muriendo 129 00:07:55,160 --> 00:07:56,160 o no. 130 00:07:56,160 --> 00:07:59,760 Es decir, van a ir siendo operaciones que se ven representadas en línea de texto. 131 00:07:59,760 --> 00:08:04,800 Y para ir apelando a esta escritura en la consola, vamos a usar el método debug log, 132 00:08:04,800 --> 00:08:05,800 ¿vale? 133 00:08:05,800 --> 00:08:11,400 Un poco como hacíamos el otro día, que si en el start poníamos debug log hola, por 134 00:08:11,400 --> 00:08:18,840 decir, ahí se ha puesto un mensaje solo, pues ponemos un hola, se mostraría eso, ¿no? 135 00:08:19,600 --> 00:08:23,480 No lo voy a demostrar porque esto ya lo hemos visto, si tenéis dudas, me vais diciendo. 136 00:08:23,480 --> 00:08:27,960 Pero sí que va a haber un debug log aquí como esperando a que sigamos trabajando. 137 00:08:27,960 --> 00:08:31,360 Nuevamente, hasta que no le digamos qué tiene que mostrar en consola, dará error. 138 00:08:31,360 --> 00:08:34,000 Pero bueno, para irnos acordando, ¿vale? 139 00:08:34,000 --> 00:08:39,800 Esto es verdad que tampoco aporta mucho, pero puede estar bien a veces ir apuntando ciertas 140 00:08:39,800 --> 00:08:43,880 cosas o, si no queremos que dé error, pues lo comentamos y ya sabemos que va a haber 141 00:08:43,880 --> 00:08:45,560 que usar debug logs continuamente. 142 00:08:45,560 --> 00:08:51,000 Además de esto, cuando nos quitan una vida y no hayamos muerto, realizaremos un bucle 143 00:08:51,000 --> 00:08:53,040 a través de las vidas que nos quedan. 144 00:08:53,040 --> 00:08:57,080 Esta parte del bucle, vamos a hacer un bucle para que nos vaya informando de cuántas vidas 145 00:08:57,080 --> 00:08:58,080 nos quedan. 146 00:08:58,080 --> 00:08:59,920 Esta la vamos a hacer un poco más adelante, ¿vale? 147 00:08:59,920 --> 00:09:05,440 No vamos a ir centrando en esta parte primera. 148 00:09:05,440 --> 00:09:11,800 Aquí tenemos este diagrama que va demostrando un poco qué va ocurriendo en cada momento, 149 00:09:12,800 --> 00:09:19,120 pero de momento vamos a empezar con lo básico, que es que tenemos un escudo, una fuerza de 150 00:09:19,120 --> 00:09:23,360 impacto que va a ocurrir y unas vidas que tendrá en esa nave. 151 00:09:23,360 --> 00:09:31,040 Luego, como nos dice también, y esta lógica también me va interesando, es que hay que 152 00:09:31,040 --> 00:09:38,200 ir informando de que una vez el jugador ha perdido todas las vidas, tiene que haber algo 153 00:09:38,280 --> 00:09:42,440 que en algún momento nos indique si está vivo o está muerto. 154 00:09:42,440 --> 00:09:46,240 Es verdad que estas vidas, cuando lleguen a cero, previsiblemente, significará que 155 00:09:46,240 --> 00:09:48,200 está muerto, ¿vale? 156 00:09:48,200 --> 00:09:52,320 Pero el otro día vimos que había un tipo de variable, que son las booleanas, que solo 157 00:09:52,320 --> 00:09:59,960 podían ser verdadero o falso, y puede ser una variable que nos sirva para decir, oye, 158 00:09:59,960 --> 00:10:04,240 este personaje está vivo hasta que deje de estar vivo, que entonces se interpretará 159 00:10:04,240 --> 00:10:05,240 que está muerto. 160 00:10:05,240 --> 00:10:07,440 ¿Eso qué significa? 161 00:10:07,680 --> 00:10:12,080 Que este personaje, ahora mismo, dado que no estamos haciendo nada más, va a empezar 162 00:10:12,080 --> 00:10:14,840 con una variable que tiene guardado que es vivo. 163 00:10:14,840 --> 00:10:18,680 Esto lo vamos a usar ahora a continuación cuando hagamos condicionales. 164 00:10:18,680 --> 00:10:25,240 Es decir, vamos a decir, cuando pulses esta tecla, si estás vivo también, sucederá 165 00:10:25,240 --> 00:10:26,240 algo. 166 00:10:26,240 --> 00:10:27,240 ¿Por qué? 167 00:10:27,240 --> 00:10:30,360 Porque si está muerto, lo que vamos a querer es que en consola ponga, está muerto, ¿vale? 168 00:10:30,360 --> 00:10:36,320 Ese tipo de controles, en vez de estar, digamos, haciendo equiparaciones con números o haciendo 169 00:10:36,320 --> 00:10:41,440 operaciones con números, se pueden poner estos, el otro día lo describí, como semaforitos, 170 00:10:41,440 --> 00:10:44,120 que sirven para decir, ¿esto está activo o no está activo? 171 00:10:44,120 --> 00:10:52,480 Entonces es una forma cómoda emplear los booleanos para indicar que algo, pues digamos, 172 00:10:52,480 --> 00:10:54,120 da permiso a otras operaciones o no. 173 00:10:54,120 --> 00:10:58,280 Es decir, mientras esté vivo el juego se está desarrollando, pero si en algún momento 174 00:10:58,280 --> 00:11:03,120 conseguimos que esto valga falso, significará que el juego está parado y ya no tiene sentido 175 00:11:03,120 --> 00:11:08,600 mover la nave ni que se puedan generar más impactos porque deberíamos pasar a otra cosa 176 00:11:08,600 --> 00:11:12,720 que ya sería un menú de Game Over o reiniciar el juego, ¿vale? 177 00:11:12,720 --> 00:11:16,520 Sería otra operación hasta que no tuviéramos otra vez al personaje vivo, ¿no? 178 00:11:16,520 --> 00:11:20,520 Que reiniciemos el juego, etcétera, ¿vale? 179 00:11:20,520 --> 00:11:28,760 Entonces de momento pues vamos también a poner una variable que va a servir para poder 180 00:11:28,760 --> 00:11:31,880 nosotros ir marcando si está vivo o no el personaje. 181 00:11:31,920 --> 00:11:37,400 Hay una cosa que el otro día vimos también, que es que yo estoy aquí declarando lo que vale 182 00:11:37,400 --> 00:11:43,840 cada una de estas variables, pero lo más correcto o lo recomendable en muchos casos es, 183 00:11:43,840 --> 00:11:48,800 aunque esté declarado aquí, yo quiero que siempre que se inicie el juego o se inicie el script, 184 00:11:48,800 --> 00:11:52,840 como ya comenté, que coja unos valores por defecto, ¿vale? 185 00:11:52,840 --> 00:11:57,160 ¿Por qué? Porque si, por ejemplo, hacemos una variable pública o un serializeField, 186 00:11:57,160 --> 00:12:03,160 como íbamos haciendo en la nave para ver en el inspector de Unity, serializeField, 187 00:12:03,160 --> 00:12:08,360 para ver en el inspector de Unity las operaciones que podamos ir haciendo, ¿vale? 188 00:12:08,360 --> 00:12:12,040 Es decir, si yo ahora mismo, recordad, importante, lo vuelvo a decir, 189 00:12:12,040 --> 00:12:15,400 quien haya hecho la tarea 1 seguramente ya se ha pegado con esto, 190 00:12:15,400 --> 00:12:19,240 pero todo lo que vayamos a hacer en este script hasta que no creamos un elemento, 191 00:12:19,240 --> 00:12:23,040 un GameObject, el tipo que sea, en este caso voy a generar un Empty, 192 00:12:23,120 --> 00:12:29,600 que va a ser, pues yo qué sé, contenedor... voy a poner juego directamente, ¿vale? 193 00:12:29,600 --> 00:12:34,600 Hasta que no asignemos este script a un GameObject, esto no va a funcionar, 194 00:12:34,600 --> 00:12:38,360 es decir, nada está cogiendo este script para operar con él, ¿vale? 195 00:12:38,360 --> 00:12:43,160 Una vez lo introducimos, ved que la VidasNave, esto ya sonará de la otra tarea también, 196 00:12:43,160 --> 00:12:46,200 pues está aquí esperando a que podamos modificar los valores. 197 00:12:46,200 --> 00:12:50,760 Y tenemos aquí que tiene 3 por defecto, porque le hemos dicho que sea 3. 198 00:12:50,760 --> 00:12:54,200 El problema que tiene de trabajar así, ¿vale? que puede haber, 199 00:12:54,200 --> 00:13:01,080 es que si nosotros aquí ponemos 7, ¿vale? y guardamos, realmente aquí sigue poniendo 3, 200 00:13:01,080 --> 00:13:03,120 es decir, en el código no lo hemos tocado. 201 00:13:03,120 --> 00:13:08,400 En este momento lo que prevalecería es lo que hemos cambiado en el inspector. 202 00:13:08,400 --> 00:13:11,480 Nosotros cuando testeemos el juego vamos a estar trabajando en el inspector. 203 00:13:11,480 --> 00:13:15,520 Entonces digamos que esto que hay aquí sobrescribe al inspector, ¿vale? 204 00:13:15,520 --> 00:13:19,480 ¿Qué puede pasar? que estamos aquí funcionando y trabajando, 205 00:13:19,480 --> 00:13:22,960 haciendo pruebas como ya haremos y estamos aquí tocando y lo dejamos así. 206 00:13:22,960 --> 00:13:26,440 Entonces empezamos el juego y estamos viendo el código y decimos, 207 00:13:26,440 --> 00:13:30,840 joe, yo he puesto 3 y este juego pone que tiene 117 vidas. 208 00:13:30,840 --> 00:13:35,880 A medida que se van teniendo más GameObjects, vamos a ir teniendo más variables aquí. 209 00:13:35,880 --> 00:13:42,720 Entonces digamos que no tener un control claro de qué hemos dejado en el inspector, ¿vale? 210 00:13:42,720 --> 00:13:45,480 Y también recordad, que os lo dije el otro día, lo último que comenté, 211 00:13:45,480 --> 00:13:49,000 que podemos ir cambiando estos valores para ir probando, ¿vale? 212 00:13:49,040 --> 00:13:53,640 Ya lo veremos con las posiciones, pero podemos decir, a ver cómo funciona esto con 226. 213 00:13:53,640 --> 00:13:55,440 Por ejemplo, cuando le damos una velocidad a un objeto. 214 00:13:55,440 --> 00:13:58,960 Podemos estar aquí probando y dices, ah, 258, perfecto. 215 00:13:58,960 --> 00:14:01,120 Y para la reproducción y sigues trabajando. 216 00:14:01,120 --> 00:14:06,120 Daos cuenta que todos los cambios que se hagan mientras estamos en play no se quedan guardados. 217 00:14:06,120 --> 00:14:12,760 Ha pasado del 258 al 110 que estaba indicado antes de darle al play. 218 00:14:12,760 --> 00:14:17,640 Entonces digamos que el inspector, pues por ejemplo, para arrastrar GameObjects, 219 00:14:17,760 --> 00:14:21,080 como hicimos el otro día en los campos para definir qué es la instancia, etc. 220 00:14:21,080 --> 00:14:25,160 Está muy bien porque esos campos no se varían tanto, no se mueven tanto. 221 00:14:25,160 --> 00:14:27,960 Y una de las asignas se queda más estable. 222 00:14:27,960 --> 00:14:33,680 Pero cuando metemos valores, que a veces se hace a través del inspector, puede dar problemas. 223 00:14:33,680 --> 00:14:38,560 Para, digamos, minimizar esto, tener mayor control, lo que es buena práctica, 224 00:14:38,560 --> 00:14:40,480 ahora no me interesa que sea SerializeFill. 225 00:14:40,480 --> 00:14:43,840 Bueno, lo dejo en SerializeFill para que veamos lo que estoy indicando. 226 00:14:43,840 --> 00:14:48,360 Pero tener en cuenta que aunque yo haya aquí inicializado una variable, 227 00:14:48,360 --> 00:14:55,080 si yo luego, al arrancar el juego, le digo que VidasNave valga 8, 228 00:14:55,080 --> 00:14:57,320 luego lo vuelvo a cambiar a 3, que es lo que me interesa, 229 00:14:57,320 --> 00:15:04,480 si yo guardo, pues efectivamente, previamente va a estar aquí encontrándose con un 3 230 00:15:04,480 --> 00:15:07,840 y en el editor con el 168 de antes. 231 00:15:07,840 --> 00:15:11,680 Pero en cuanto arranquemos el juego y este script se arranque, 232 00:15:11,680 --> 00:15:13,920 vais a ver que en el Start se ha puesto el 8. 233 00:15:13,920 --> 00:15:16,840 Entonces nos aseguramos que siempre que arranquemos el juego 234 00:15:16,840 --> 00:15:19,720 sea el valor que estamos indicando. 235 00:15:19,720 --> 00:15:23,160 Esto es importante porque a veces nos podemos volver un poco locuelos. 236 00:15:23,160 --> 00:15:27,120 Veis que incluso cuando dejo de ejecutar, pues ya vuelve a ponerse otro valor. 237 00:15:27,120 --> 00:15:30,120 Pero sí que nos aseguramos de este modo que al arrancar el juego 238 00:15:30,120 --> 00:15:32,040 se pone con la cifra que queremos. 239 00:15:32,040 --> 00:15:36,480 Entonces, como nosotros tenemos bien claro, por lo que estamos definiendo en el enunciado, 240 00:15:36,480 --> 00:15:40,440 que esta nave va a arrancar cada vez que iniciemos el juego, 241 00:15:40,440 --> 00:15:43,360 no solo cuando se arranque el juego la primera vez, no. 242 00:15:43,360 --> 00:15:46,760 Cada vez que se inicie este script, pues va a valer 3, ¿vale? 243 00:15:46,760 --> 00:15:50,920 Lo cual, pues mira, me permite incluso dejar esto sin serialize. 244 00:15:50,920 --> 00:15:53,760 Sigue siendo privado y no se puede operar en el inspector. 245 00:15:53,760 --> 00:15:56,680 Así no podemos tampoco modificarlo ni meterle mano. 246 00:15:56,680 --> 00:16:03,480 Y ya, siempre que arranquemos el juego, la nave va a tener 3 vidas. 247 00:16:03,480 --> 00:16:07,720 Aparte, lo mismo sucede con lo de vivo. 248 00:16:07,720 --> 00:16:12,800 Para que veáis cómo se traduce un serialize fill en una variable de tipo booleano, 249 00:16:12,800 --> 00:16:16,840 claro, aquí no va a salir un número. 250 00:16:16,840 --> 00:16:20,280 Este tipo de variables lo que hace es contener un verdadero, 251 00:16:20,280 --> 00:16:22,440 como ahora cuando está marcado, o un falso. 252 00:16:22,440 --> 00:16:24,040 Y sucede lo mismo. 253 00:16:24,040 --> 00:16:27,040 Aparecía marcado porque habíamos dicho que esto era true. 254 00:16:27,040 --> 00:16:29,520 A ver, voy a ver, no vaya a ser que me estéis escribiendo en el chat. 255 00:16:29,520 --> 00:16:30,920 Vale, perdón. 256 00:16:30,920 --> 00:16:33,920 Le hemos puesto true. Si aquí dijéramos que es false, 257 00:16:34,080 --> 00:16:38,920 cuando guardemos y vayamos, está sin tachar. 258 00:16:38,920 --> 00:16:41,760 Y ojo, lo he cambiado en el código y he guardado, 259 00:16:41,760 --> 00:16:44,520 pero cuando cambio algo en el código y ya lo hemos inicializado 260 00:16:44,520 --> 00:16:49,240 en, digamos, como variable global, 261 00:16:49,240 --> 00:16:51,680 nuevamente esto no se sobreescribe. 262 00:16:51,680 --> 00:16:54,360 Es decir, aunque yo ahora ponga aquí true... 263 00:16:54,360 --> 00:16:56,560 A ver, espera. 264 00:16:56,560 --> 00:16:59,160 Quito el true, lo dejo en false. 265 00:16:59,160 --> 00:17:02,160 Y yo ahora digo, quiero que esto sea true, que todavía no he guardado. 266 00:17:02,280 --> 00:17:04,480 Antes estaba como false y guardo. 267 00:17:04,480 --> 00:17:08,920 Cuando vuelvo aquí, al inspector, veis que sigue siendo false. 268 00:17:08,920 --> 00:17:10,640 Porque esto no está diciendo en ningún momento, 269 00:17:10,640 --> 00:17:14,200 oye, pero cámbiamelo del inspector, que sí que es lo que hace el start. 270 00:17:14,200 --> 00:17:17,200 Oye, cuando arranca el juego me lo configura con este valor. 271 00:17:17,200 --> 00:17:20,160 Por eso vamos a seguir la misma lógica. 272 00:17:20,160 --> 00:17:22,400 También para decir que si estamos vivos o no, 273 00:17:22,400 --> 00:17:25,200 ese semáforo que nos permite luego booleano, 274 00:17:25,200 --> 00:17:27,280 que nos permite ir marcando condiciones, 275 00:17:27,280 --> 00:17:29,880 pues yo digo, no, cuando arranca el juego, por defecto, 276 00:17:29,920 --> 00:17:33,560 pues está vivo esta nave, ¿vale? 277 00:17:33,560 --> 00:17:36,440 Pues nada, ya lo tenemos así puesto. 278 00:17:36,440 --> 00:17:40,000 Y luego vamos a decir también que la energía del escudo, 279 00:17:40,000 --> 00:17:44,000 pues igual, vamos a basarnos en que el escudo, por defecto, 280 00:17:44,000 --> 00:17:45,640 arranca con 100 de vida. 281 00:17:45,640 --> 00:17:47,200 Cuando llegue a cero, 282 00:17:47,200 --> 00:17:50,920 pues será que ha perdido el escudo y pierde una vida, ¿vale? 283 00:17:50,920 --> 00:17:52,920 Hasta aquí, ¿qué tal? ¿Me vais siguiendo? 284 00:17:52,920 --> 00:17:55,920 Claro, bueno, Daniel me está preguntando 285 00:17:55,920 --> 00:17:59,400 si se toman primero los valores del inspector antes que el código. 286 00:17:59,400 --> 00:18:03,360 Es decir, si lo tienes como variables globales, 287 00:18:03,360 --> 00:18:06,560 que las variables globales se declaran, 288 00:18:06,560 --> 00:18:08,240 pero no hay ningún momento, 289 00:18:08,240 --> 00:18:10,040 no sucede como en Start o en Update, 290 00:18:10,040 --> 00:18:11,920 que estás diciendo momentos de ejecución, 291 00:18:11,920 --> 00:18:14,440 aquí se están solo declarando a nivel de código. 292 00:18:14,440 --> 00:18:16,920 Pero cuando estás jugando no hay momentos como aquí. 293 00:18:16,920 --> 00:18:18,920 Estos métodos sirven para que el inspector 294 00:18:19,320 --> 00:18:21,920 Pero cuando estás jugando no hay momentos como aquí. 295 00:18:21,920 --> 00:18:24,920 Estos métodos sirven para definir cuando sucede algo. 296 00:18:24,920 --> 00:18:27,120 Como aquí en ningún momento, cuando arrancamos el juego, 297 00:18:27,120 --> 00:18:28,720 ni en ningún momento estamos diciendo 298 00:18:28,720 --> 00:18:32,720 que vuelva a mirar el código para dar estos valores, 299 00:18:32,720 --> 00:18:35,200 al final el que gana ahí, el que se queda, 300 00:18:35,200 --> 00:18:37,800 es lo que estemos marcando en el inspector, 301 00:18:37,800 --> 00:18:40,920 ¿vale? Cuando estén serializadas o públicas. 302 00:18:40,920 --> 00:18:44,200 Si queremos que siempre se arranque o cada fotograma, 303 00:18:44,200 --> 00:18:46,920 que también podría ser otra cosa, ahora lo usaremos, 304 00:18:46,920 --> 00:18:50,920 queremos que cada fotograma se vaya variando un valor, 305 00:18:50,920 --> 00:18:53,920 pues ahí ya lo pondríamos en este sitio. 306 00:18:53,920 --> 00:18:57,920 Pero sí, el orden sería el valor con el que declaremos, 307 00:18:57,920 --> 00:19:01,920 aquí declaramos para luego ir usando en el resto de métodos. 308 00:19:01,920 --> 00:19:05,920 Cuando arranca el juego, si lo hemos puesto en Start, 309 00:19:05,920 --> 00:19:09,920 cogerá estos valores y por en medio digamos que está 310 00:19:09,920 --> 00:19:14,920 el valor que pongamos en el inspector, 311 00:19:14,920 --> 00:19:16,920 que siempre que no lo volvamos a sobreescribir 312 00:19:16,920 --> 00:19:20,920 en un momento de ejecución, gana o se sobreescribe a esto 313 00:19:20,920 --> 00:19:22,920 que tenemos aquí como variables globales. 314 00:19:22,920 --> 00:19:25,920 Sí, querías hablar, ¿verdad? 315 00:19:25,920 --> 00:19:32,920 Sí, para dejarlo así, las generales, 316 00:19:32,920 --> 00:19:34,920 los valores que hacemos globales, 317 00:19:34,920 --> 00:19:36,920 no es como obligatorio darle un valor, 318 00:19:36,920 --> 00:19:39,920 lo que tenemos que buscar ahí es el tipo de caja, 319 00:19:39,920 --> 00:19:40,920 por decirlo así. 320 00:19:40,920 --> 00:19:41,920 Efectivamente. 321 00:19:41,920 --> 00:19:44,920 Si va a ser una booleana, un número entero, 322 00:19:44,920 --> 00:19:46,920 un tipo float, ¿no? 323 00:19:46,920 --> 00:19:47,920 Eso es. 324 00:19:47,920 --> 00:19:49,920 Es como lo importante en la global. 325 00:19:49,920 --> 00:19:53,920 Y ya luego en cada método sí que le damos valor 326 00:19:53,920 --> 00:19:55,920 según lo que queramos. 327 00:19:55,920 --> 00:19:56,920 Eso es. 328 00:19:56,920 --> 00:19:59,920 A ver, a veces nos puede interesar ya declararlo aquí 329 00:19:59,920 --> 00:20:01,920 como por defecto y si es privada, 330 00:20:01,920 --> 00:20:03,920 no lo vamos a cambiar nunca con el inspector. 331 00:20:03,920 --> 00:20:04,920 Vale. 332 00:20:04,920 --> 00:20:07,920 Pues se puede inicializar como había hecho aquí, ¿vale? 333 00:20:07,920 --> 00:20:09,920 Pero sí, es justo lo que has descrito. 334 00:20:09,920 --> 00:20:11,920 Aquí digamos que vamos preparando todas las cajas 335 00:20:11,920 --> 00:20:13,920 para ir usándolo en todos los métodos, 336 00:20:13,920 --> 00:20:15,920 porque recordad que dije el otro día 337 00:20:15,920 --> 00:20:17,920 que lo que esté en una llave superior, 338 00:20:17,920 --> 00:20:21,920 los métodos se pueden usar en clases 339 00:20:21,920 --> 00:20:24,920 y en funcionalidades, digamos, encapsuladas dentro. 340 00:20:24,920 --> 00:20:30,920 Pero si yo declaro aquí un int declarado, 341 00:20:30,920 --> 00:20:33,920 y digo esto vale 100, 342 00:20:33,920 --> 00:20:36,920 si yo luego quiero operar, y está dentro del start, 343 00:20:36,920 --> 00:20:38,920 si yo luego quiero trabajar con declarado y decir 344 00:20:38,920 --> 00:20:42,920 declarado cada fotograma a suponer 500, 345 00:20:42,920 --> 00:20:45,920 da fallo porque no lo hemos declarado en un nivel superior. 346 00:20:45,920 --> 00:20:51,920 Solo podremos operar con declarado dentro de esta área. 347 00:20:51,920 --> 00:20:52,920 Sí, esto es importante, 348 00:20:52,920 --> 00:20:55,920 porque si no a veces empezamos a declarar variables 349 00:20:55,920 --> 00:20:57,920 y cuidado, el tipo de variable, 350 00:20:57,920 --> 00:20:59,920 daos cuenta de que solo se pone una vez. 351 00:20:59,920 --> 00:21:03,920 Se crea la caja y luego ya cuando queramos trabajar con ella 352 00:21:03,920 --> 00:21:04,920 apelamos al nombre, 353 00:21:04,920 --> 00:21:07,920 pero veis que aquí ya no vuelve a poner int. 354 00:21:07,920 --> 00:21:09,920 ¿Más o menos? 355 00:21:09,920 --> 00:21:11,920 Perfecto. 356 00:21:11,920 --> 00:21:15,920 Si vais haciendo las prácticas lo iréis asimilando, 357 00:21:15,920 --> 00:21:18,920 pero muy buena pregunta y bien visto todo. 358 00:21:18,920 --> 00:21:20,920 Es decir, aquí como globales, 359 00:21:20,920 --> 00:21:22,920 para luego no preocuparnos a lo largo del juego, 360 00:21:22,920 --> 00:21:23,920 pues vamos generando aquí las cajas 361 00:21:23,920 --> 00:21:25,920 y luego ya las vamos jugando aquí. 362 00:21:25,920 --> 00:21:27,920 En ciertos momentos nos puede interesar, 363 00:21:27,920 --> 00:21:29,920 no, yo no quiero que del start salga esto, 364 00:21:29,920 --> 00:21:32,920 entonces declararemos aquí la variable. 365 00:21:32,920 --> 00:21:34,920 Y sí que es verdad que en este juego 366 00:21:34,920 --> 00:21:37,920 está bien que creamos aquí las cajas 367 00:21:37,920 --> 00:21:39,920 y según arranque le damos ya los valores 368 00:21:39,920 --> 00:21:41,920 con los que empieza el juego. 369 00:21:41,920 --> 00:21:44,920 Y así no hay nada que nos quite el sueño 370 00:21:44,920 --> 00:21:46,920 de que he tocado en el inspector 371 00:21:46,920 --> 00:21:49,920 o no sé en qué momento algo va a sobreescribirlo. 372 00:21:49,920 --> 00:21:51,920 Que lo mismo sucede, 373 00:21:51,920 --> 00:21:52,920 simplemente para que veáis, 374 00:21:52,920 --> 00:21:55,920 yo aquí puedo decir vidas nave 3 375 00:21:55,920 --> 00:21:57,920 y luego aquí en el update decir 376 00:21:57,920 --> 00:22:02,920 en vez de vidas nave empieza el juego. 377 00:22:02,920 --> 00:22:04,920 Y digo este personaje está vivo 378 00:22:04,920 --> 00:22:06,920 y luego le pongo aquí no, 379 00:22:06,920 --> 00:22:08,920 pero luego está muerto en el update. 380 00:22:08,920 --> 00:22:10,920 Tened en cuenta, 381 00:22:12,920 --> 00:22:13,920 empieza el juego y está vivo, 382 00:22:13,920 --> 00:22:17,920 pero en el siguiente fotograma pasa a estar muerto. 383 00:22:17,920 --> 00:22:20,920 Entonces vais a ver que si yo aquí hago 384 00:22:20,920 --> 00:22:23,920 una llamada a consola para que me diga 385 00:22:23,920 --> 00:22:27,920 qué vale la variable vivo, 386 00:22:27,920 --> 00:22:29,920 pues lo que me va a decir según arranca el juego 387 00:22:29,920 --> 00:22:30,920 va a ser verdadero, 388 00:22:30,920 --> 00:22:32,920 pero luego va a pasar a ser falso. 389 00:22:32,920 --> 00:22:34,920 Que esto se va modificando. 390 00:22:34,920 --> 00:22:37,920 Hay que ir viendo la lógica de ejecución del juego. 391 00:22:37,920 --> 00:22:41,920 Entonces hago la prueba para que lo veáis. 392 00:22:44,920 --> 00:22:47,920 A veces me hago un lío con tanta ventanita. 393 00:22:47,920 --> 00:22:50,920 Y yo le doy aquí al play y veis que el primero, 394 00:22:50,920 --> 00:22:51,920 bueno y lo detengo. 395 00:22:51,920 --> 00:22:53,920 Cuando detenemos se queda aquí 396 00:22:53,920 --> 00:22:54,920 hasta que volvamos a ejecutar, 397 00:22:54,920 --> 00:22:56,920 se queda guardado en todos los mensajes. 398 00:22:56,920 --> 00:22:58,920 Como se han creado muchos voy al principio del todo. 399 00:23:00,920 --> 00:23:03,920 Y no se ha generado porque el primer fotograma 400 00:23:03,920 --> 00:23:04,920 me lo ha sobrescrito. 401 00:23:04,920 --> 00:23:06,920 Como se ha hecho más de 900, 402 00:23:06,920 --> 00:23:07,920 se ha sobrescrito. 403 00:23:07,920 --> 00:23:10,920 Pero mira, si yo le doy play y lo paro antes, 404 00:23:10,920 --> 00:23:13,920 el primero debería ser verdadero. 405 00:23:13,920 --> 00:23:14,920 A ver. 406 00:23:16,920 --> 00:23:18,920 Empieza como vivo, verdadero. 407 00:23:19,920 --> 00:23:20,920 Vale, hay un problema. 408 00:23:21,920 --> 00:23:24,920 Y este son las sutilezas que suceden aquí. 409 00:23:25,920 --> 00:23:27,920 Como hemos puesto el debug log 410 00:23:27,920 --> 00:23:29,920 después de que lo hemos convertido en falso, 411 00:23:29,920 --> 00:23:31,920 hasta que no pasa ese primer fotograma 412 00:23:31,920 --> 00:23:33,920 y esto pasa a ser falso, 413 00:23:33,920 --> 00:23:35,920 no se escribe en consola. 414 00:23:35,920 --> 00:23:37,920 Por tanto, siempre aparece como falso. 415 00:23:37,920 --> 00:23:39,920 Que no es lo mismo que si yo digo, 416 00:23:39,920 --> 00:23:41,920 ojo, en cuanto pase este fotograma, 417 00:23:41,920 --> 00:23:43,920 empieza verdadero, 418 00:23:43,920 --> 00:23:44,920 va al siguiente fotograma y dice, 419 00:23:44,920 --> 00:23:47,920 vale, escribo vivo y ya pasa falso. 420 00:23:47,920 --> 00:23:50,920 Ya siempre que vaya haciéndose el bucle por fotogramas, 421 00:23:50,920 --> 00:23:51,920 será falso. 422 00:23:51,920 --> 00:23:53,920 Porque yo le he dicho que la variable es falso. 423 00:23:53,920 --> 00:23:55,920 Y le he dicho que es falso 424 00:23:55,920 --> 00:23:57,920 y se guarda, si os fijáis, 425 00:23:57,920 --> 00:24:00,920 en la caja vivo, que es donde la hemos declarado. 426 00:24:00,920 --> 00:24:02,920 Entonces siempre va a valer falso 427 00:24:03,920 --> 00:24:04,920 cada vez que vuelva a bajar, 428 00:24:04,920 --> 00:24:05,920 porque se meterá en el update 429 00:24:05,920 --> 00:24:08,920 y aquí está leyendo este falso que se ha guardado aquí. 430 00:24:09,920 --> 00:24:10,920 Ahora sí que, 431 00:24:10,920 --> 00:24:11,920 espero no equivocarme, 432 00:24:11,920 --> 00:24:13,920 si le doy al play, borro 433 00:24:13,920 --> 00:24:15,920 todo lo que hay en consola con este clear. 434 00:24:16,920 --> 00:24:17,920 Si le doy a play, 435 00:24:17,920 --> 00:24:18,920 y paro. 436 00:24:18,920 --> 00:24:21,920 Ahora cuando suba, sí que veo que el primero es verdadero 437 00:24:21,920 --> 00:24:23,920 y ya a partir de ahí todo es falso, falso, falso. 438 00:24:23,920 --> 00:24:24,920 Todos los fotogramas. 439 00:24:24,920 --> 00:24:27,920 Fijaos que el orden altera el resultado bastante. 440 00:24:28,920 --> 00:24:29,920 ¿Vale? 441 00:24:29,920 --> 00:24:31,920 ¿Entendéis un poco qué ha sucedido ahora 442 00:24:31,920 --> 00:24:32,920 en lo que acabamos de ver? 443 00:24:32,920 --> 00:24:34,920 Que son sutilezas, pero son importantes. 444 00:24:42,920 --> 00:24:43,920 Bueno, espero que sí. 445 00:24:45,920 --> 00:24:46,920 Sí, entendido, vale. 446 00:24:47,920 --> 00:24:48,920 Vale, pues, 447 00:24:49,920 --> 00:24:52,920 a ver, que este no es el script que tenemos entre manos. 448 00:24:52,920 --> 00:24:53,920 Vale. 449 00:24:53,920 --> 00:24:55,920 Pues ahora mismo lo que tenemos aquí es 450 00:24:55,920 --> 00:24:56,920 una nave 451 00:24:57,920 --> 00:24:58,920 con tres vidas, 452 00:24:58,920 --> 00:24:59,920 un escudo de 100 453 00:24:59,920 --> 00:25:01,920 y luego va a haber un impacto, ¿vale? 454 00:25:01,920 --> 00:25:04,920 Fijaos que esta variable no la he declarado, 455 00:25:04,920 --> 00:25:05,920 pero no la he inicializado. 456 00:25:06,920 --> 00:25:08,920 Oye, aquí de momento 457 00:25:08,920 --> 00:25:11,920 yo puedo hacer 85 cajas y no hay por qué usarlas, ¿vale? 458 00:25:11,920 --> 00:25:13,920 Se pondrá de un color diferente, ¿vale? 459 00:25:13,920 --> 00:25:15,920 A lo mejor a veces no pondrá 460 00:25:16,920 --> 00:25:18,920 como que está en uso, ¿vale? 461 00:25:18,920 --> 00:25:21,920 Pero no pasa nada por declarar variables 462 00:25:21,920 --> 00:25:22,920 que no se usan. 463 00:25:22,920 --> 00:25:23,920 De hecho, si... 464 00:25:23,920 --> 00:25:25,920 Bueno, lo que pasa es que tengo más scripts 465 00:25:25,920 --> 00:25:26,920 y va a ser más lío. 466 00:25:26,920 --> 00:25:28,920 Pero puede poner que en alguno, 467 00:25:28,920 --> 00:25:29,920 como advertencia, 468 00:25:29,920 --> 00:25:30,920 no como error rojo, 469 00:25:30,920 --> 00:25:31,920 pone en tal código, 470 00:25:31,920 --> 00:25:32,920 el campo... 471 00:25:32,920 --> 00:25:33,920 Bueno, este es de otro código, 472 00:25:33,920 --> 00:25:34,920 pero dice lo mismo. 473 00:25:34,920 --> 00:25:35,920 Está asignado, 474 00:25:35,920 --> 00:25:36,920 pero su valor nunca es usado. 475 00:25:36,920 --> 00:25:37,920 ¿Vale? 476 00:25:37,920 --> 00:25:39,920 Esto significa que se ha declarado una variable, 477 00:25:39,920 --> 00:25:40,920 pero nunca se ha usado. 478 00:25:40,920 --> 00:25:41,920 ¡Ojo! 479 00:25:41,920 --> 00:25:43,920 ¿Para qué la declaraste si no la vas a usar? 480 00:25:43,920 --> 00:25:45,920 Hombre, lo suyo aquí no es poner cosas demás, 481 00:25:45,920 --> 00:25:47,920 pero oye, que si más adelante la vamos a usar, 482 00:25:47,920 --> 00:25:48,920 aquí podemos generar más cajas 483 00:25:48,920 --> 00:25:50,920 y tampoco pasa nada, la verdad. 484 00:25:50,920 --> 00:25:51,920 ¿Vale? 485 00:25:51,920 --> 00:25:53,920 Que cuando salga este error que tenéis... 486 00:25:53,920 --> 00:25:54,920 No es error, es advertencia, 487 00:25:54,920 --> 00:25:55,920 que os salga aquí 488 00:25:55,920 --> 00:25:57,920 y ponga este mensajico, 489 00:25:57,920 --> 00:25:58,920 significa eso. 490 00:25:58,920 --> 00:25:59,920 ¿Vale? 491 00:25:59,920 --> 00:26:00,920 Vale. 492 00:26:00,920 --> 00:26:01,920 Vamos a continuar. 493 00:26:02,920 --> 00:26:03,920 Eh... 494 00:26:03,920 --> 00:26:05,920 Lo que vamos a querer, básicamente, 495 00:26:05,920 --> 00:26:06,920 es que cuando... 496 00:26:07,920 --> 00:26:09,920 Y esto lo quito porque no me interesa, ¿vale? 497 00:26:09,920 --> 00:26:10,920 Lo he escrito a modo ejemplo. 498 00:26:10,920 --> 00:26:11,920 Está vivo cuando empieza, 499 00:26:11,920 --> 00:26:12,920 una escuda de 100 500 00:26:12,920 --> 00:26:13,920 y una vida en nave. 501 00:26:14,920 --> 00:26:15,920 Lo que vamos a hacer, ¿vale? 502 00:26:15,920 --> 00:26:17,920 Es que cada vez 503 00:26:17,920 --> 00:26:19,920 que le demos a una tecla, 504 00:26:19,920 --> 00:26:20,920 por hacerlo de una forma, ¿vale? 505 00:26:20,920 --> 00:26:21,920 Cada vez que demos, por ejemplo, 506 00:26:21,920 --> 00:26:22,920 a la barra espaciadora, 507 00:26:22,920 --> 00:26:24,920 que eso es algo que ya, más o menos, 508 00:26:24,920 --> 00:26:26,920 se indica en el tema 2 cómo se hace 509 00:26:26,920 --> 00:26:27,920 y lo vemos ahora, ¿no? 510 00:26:27,920 --> 00:26:29,920 Vamos a decir que cada vez 511 00:26:29,920 --> 00:26:31,920 que demos a... 512 00:26:31,920 --> 00:26:33,920 a la barra espaciadora, 513 00:26:33,920 --> 00:26:34,920 se genera un impacto. 514 00:26:34,920 --> 00:26:36,920 Es decir, como que la nave se ha chocado 515 00:26:36,920 --> 00:26:37,920 con el... 516 00:26:37,920 --> 00:26:38,920 con... 517 00:26:39,920 --> 00:26:41,920 con un meteorito, ¿vale? 518 00:26:41,920 --> 00:26:42,920 Y le genera un daño, ¿no? 519 00:26:43,920 --> 00:26:45,920 Claro, porque hasta que no pase eso, 520 00:26:45,920 --> 00:26:47,920 pues el impacto no se está generando. 521 00:26:47,920 --> 00:26:48,920 Entonces... 522 00:26:49,920 --> 00:26:50,920 podríamos... 523 00:26:50,920 --> 00:26:51,920 En el enunciado se indica 524 00:26:51,920 --> 00:26:52,920 que sea cada dos segundos. 525 00:26:52,920 --> 00:26:53,920 Para eso habría que hacer 526 00:26:53,920 --> 00:26:55,920 una corrutina, probablemente, 527 00:26:55,920 --> 00:26:57,920 o algún tipo de... 528 00:26:58,920 --> 00:26:59,920 de... 529 00:27:00,920 --> 00:27:02,920 de invoke, ¿vale? 530 00:27:02,920 --> 00:27:04,920 Que sirve para lanzar métodos 531 00:27:04,920 --> 00:27:05,920 en diferido, ¿vale? 532 00:27:05,920 --> 00:27:06,920 Esto está como ya introducido 533 00:27:06,920 --> 00:27:07,920 también en estos temas, 534 00:27:07,920 --> 00:27:09,920 pero prefiero hacerlo de otra forma 535 00:27:09,920 --> 00:27:10,920 ahora mismo. 536 00:27:10,920 --> 00:27:12,920 Lo que vamos a hacer es eso, 537 00:27:12,920 --> 00:27:13,920 que cuando le damos a la barra espaciadora, 538 00:27:13,920 --> 00:27:15,920 se genere un impacto, ¿no? 539 00:27:16,920 --> 00:27:17,920 Ahora es cuando empezamos 540 00:27:17,920 --> 00:27:18,920 a entrar en el terreno 541 00:27:18,920 --> 00:27:20,920 de los condicionales, ¿vale? 542 00:27:20,920 --> 00:27:22,920 Que es, básicamente, 543 00:27:22,920 --> 00:27:24,920 que declaramos una condición 544 00:27:24,920 --> 00:27:26,920 que, si se cumple, se ejecuta algo. 545 00:27:26,920 --> 00:27:28,920 ¿Vale? Este tipo de condicionales, 546 00:27:28,920 --> 00:27:30,920 de estructuras de control condicional, 547 00:27:30,920 --> 00:27:32,920 ¿vale? Tienen una... 548 00:27:32,920 --> 00:27:33,920 digamos, estructura 549 00:27:33,920 --> 00:27:34,920 la más básica posible, 550 00:27:34,920 --> 00:27:36,920 que es la del if, ¿no? 551 00:27:36,920 --> 00:27:37,920 Es decir, bueno, 552 00:27:37,920 --> 00:27:38,920 en la traducción en inglés de if 553 00:27:38,920 --> 00:27:39,920 sería así. 554 00:27:39,920 --> 00:27:41,920 Si pasa algo, pues sucede tal cosa, ¿no? 555 00:27:41,920 --> 00:27:43,920 Si ponemos aquí un if, 556 00:27:43,920 --> 00:27:44,920 entre unos paréntesis, 557 00:27:44,920 --> 00:27:45,920 podemos poner 558 00:27:45,920 --> 00:27:47,920 qué condición se debe de dar 559 00:27:47,920 --> 00:27:48,920 para que se ejecute 560 00:27:48,920 --> 00:27:50,920 lo que hay entre llaves. 561 00:27:50,920 --> 00:27:51,920 ¿Vale? Es decir, 562 00:27:51,920 --> 00:27:52,920 igual que tenemos aquí las llaves 563 00:27:52,920 --> 00:27:53,920 que abren y cierran 564 00:27:53,920 --> 00:27:55,920 y encapsulan, ¿no? 565 00:27:55,920 --> 00:27:58,920 Aquí vamos a tener paréntesis 566 00:27:58,920 --> 00:28:00,920 que, si... 567 00:28:00,920 --> 00:28:02,920 imagino que os recuerdan un poco, 568 00:28:02,920 --> 00:28:03,920 por ejemplo, a los del instant seed. 569 00:28:03,920 --> 00:28:05,920 Aquí no son parámetros 570 00:28:05,920 --> 00:28:06,920 como en un método, 571 00:28:06,920 --> 00:28:08,920 con el que vamos diciendo 572 00:28:08,920 --> 00:28:10,920 cómo se ejecuta un método, 573 00:28:10,920 --> 00:28:11,920 pero sí que nos permite 574 00:28:11,920 --> 00:28:13,920 meter condiciones 575 00:28:13,920 --> 00:28:16,920 para que se dé una condición o no. 576 00:28:16,920 --> 00:28:17,920 ¿Vale? 577 00:28:17,920 --> 00:28:19,920 Si cuando pasa el update 578 00:28:19,920 --> 00:28:20,920 en cada fotograma 579 00:28:20,920 --> 00:28:22,920 se cumple lo que hay dentro de este if, 580 00:28:22,920 --> 00:28:23,920 entre estos paréntesis, 581 00:28:23,920 --> 00:28:24,920 se ejecuta esto. 582 00:28:24,920 --> 00:28:25,920 Si no se ejecuta, 583 00:28:25,920 --> 00:28:27,920 seguirá y lo ignorará. 584 00:28:27,920 --> 00:28:28,920 Nos sirve para decir, por ejemplo, 585 00:28:28,920 --> 00:28:30,920 que algo suceda. 586 00:28:30,920 --> 00:28:31,920 Entonces, 587 00:28:31,920 --> 00:28:33,920 lo que vamos a hacer, por ejemplo, 588 00:28:33,920 --> 00:28:34,920 es si... 589 00:28:34,920 --> 00:28:35,920 Y vamos a pensarlo 590 00:28:35,920 --> 00:28:37,920 a nivel, no programación, 591 00:28:37,920 --> 00:28:39,920 sino a nivel 592 00:28:39,920 --> 00:28:42,920 escritura humana normal, ¿no? 593 00:28:42,920 --> 00:28:44,920 Si... 594 00:28:44,920 --> 00:28:46,920 Lo voy a poner entre comentarios. 595 00:28:46,920 --> 00:28:48,920 Si... 596 00:28:48,920 --> 00:28:50,920 Si pulso la tecla 597 00:28:50,920 --> 00:28:52,920 espacio, 598 00:28:52,920 --> 00:28:54,920 la barra espaciadora, 599 00:28:54,920 --> 00:28:56,920 digamos, se provoca un impacto. 600 00:28:56,920 --> 00:28:58,920 ¿Vale? 601 00:28:58,920 --> 00:28:59,920 Hasta entonces, 602 00:28:59,920 --> 00:29:01,920 el juego se irá desarrollando 603 00:29:01,920 --> 00:29:02,920 y el escudo seguirá en 100 604 00:29:02,920 --> 00:29:03,920 y las vidas en 3. 605 00:29:03,920 --> 00:29:04,920 ¿Vale? 606 00:29:04,920 --> 00:29:05,920 Esto, si pulso la tecla espacio, 607 00:29:05,920 --> 00:29:06,920 es decir, 608 00:29:06,920 --> 00:29:08,920 si pulso la tecla espacio, 609 00:29:08,920 --> 00:29:10,920 vamos a ver... 610 00:29:10,920 --> 00:29:11,920 Ya habéis visto el tema 2, 611 00:29:11,920 --> 00:29:13,920 que para poder apelar 612 00:29:13,920 --> 00:29:17,920 a teclas del teclado, 613 00:29:17,920 --> 00:29:19,920 hay que usar la clase Input, 614 00:29:19,920 --> 00:29:21,920 que es la que define 615 00:29:21,920 --> 00:29:24,920 las entradas de... 616 00:29:24,920 --> 00:29:26,920 Puede ser tanto de... 617 00:29:26,920 --> 00:29:27,920 Es decir, las interacciones 618 00:29:27,920 --> 00:29:28,920 que haga el jugador. 619 00:29:28,920 --> 00:29:29,920 Puede ser tanto con el teclado, 620 00:29:29,920 --> 00:29:30,920 con el joystick, 621 00:29:30,920 --> 00:29:31,920 con un ratón, 622 00:29:31,920 --> 00:29:33,920 con un gamepad. 623 00:29:33,920 --> 00:29:35,920 Se define en distintas formas. 624 00:29:35,920 --> 00:29:37,920 Pero también hay que ir definiendo, 625 00:29:37,920 --> 00:29:39,920 después de esta clase, 626 00:29:39,920 --> 00:29:41,920 cómo recibe esa interacción. 627 00:29:41,920 --> 00:29:42,920 Ahora mismo, 628 00:29:42,920 --> 00:29:44,920 y en el tema 2 aparece descrito, 629 00:29:44,920 --> 00:29:46,920 por favor, cuando podáis, 630 00:29:46,920 --> 00:29:48,920 si no lo habéis hecho ya, 631 00:29:48,920 --> 00:29:49,920 irle echando un ojo. 632 00:29:49,920 --> 00:29:51,920 Voy a poner aquí el apartado 633 00:29:51,920 --> 00:29:52,920 en el que sale, 634 00:29:52,920 --> 00:29:53,920 simplemente para que sepáis 635 00:29:53,920 --> 00:29:54,920 de dónde sale esto. 636 00:29:54,920 --> 00:29:57,920 Pero en el tema 2... 637 00:29:57,920 --> 00:29:58,920 A ver... 638 00:29:58,920 --> 00:29:59,920 En el tema... 639 00:29:59,920 --> 00:30:01,920 Espera, voy a colapsar. 640 00:30:01,920 --> 00:30:04,920 Y en el tema 2, 641 00:30:04,920 --> 00:30:05,920 en los contenidos, 642 00:30:05,920 --> 00:30:07,920 hay una sección 643 00:30:07,920 --> 00:30:09,920 que es la de interactividad. 644 00:30:09,920 --> 00:30:11,920 Y en la clase Input, 645 00:30:11,920 --> 00:30:13,920 que es esa clase de la que acabo de hablar, 646 00:30:13,920 --> 00:30:15,920 luego hay muchos métodos 647 00:30:15,920 --> 00:30:16,920 que ya vienen preconfigurados. 648 00:30:16,920 --> 00:30:18,920 El GetMouseButtonDown. 649 00:30:18,920 --> 00:30:20,920 Si estamos usando, por ejemplo, 650 00:30:20,920 --> 00:30:22,920 un botón de un gamepad. 651 00:30:22,920 --> 00:30:23,920 O GetKeyDown, 652 00:30:23,920 --> 00:30:26,920 para detectar una tecla. 653 00:30:26,920 --> 00:30:27,920 Una tecla del teclado, 654 00:30:27,920 --> 00:30:30,920 que es el que nos interesa ahora mismo. 655 00:30:30,920 --> 00:30:32,920 Luego está el... 656 00:30:32,920 --> 00:30:35,920 Los GetMouseButtons. 657 00:30:35,920 --> 00:30:36,920 Esto hay que irlo viendo. 658 00:30:36,920 --> 00:30:37,920 Los GetAxis. 659 00:30:37,920 --> 00:30:38,920 Esto lo veremos para la tarea 2. 660 00:30:38,920 --> 00:30:40,920 Hoy no me voy a meter en esa tanto, 661 00:30:40,920 --> 00:30:42,920 pero que sepáis que también está aquí. 662 00:30:42,920 --> 00:30:43,920 Entonces, 663 00:30:43,920 --> 00:30:45,920 hay distintos métodos que podemos usar. 664 00:30:45,920 --> 00:30:46,920 Si queremos usar 665 00:30:46,920 --> 00:30:50,920 lo relacionado con el teclado del ordenador, 666 00:30:50,920 --> 00:30:52,920 pues nos está indicando 667 00:30:52,920 --> 00:30:56,920 que tenemos que usar uno que se llama GetKey. 668 00:30:56,920 --> 00:30:58,920 Y cuando vais escribiendo, 669 00:30:58,920 --> 00:31:01,920 dice yo voy a coger una tecla del teclado. 670 00:31:01,920 --> 00:31:04,920 De hecho, si vemos aquí la descripción, 671 00:31:04,920 --> 00:31:06,920 devuelve verdadero, 672 00:31:06,920 --> 00:31:08,920 mientras el usuario mantiene la tecla 673 00:31:08,920 --> 00:31:10,920 identificada por el KeyCode. 674 00:31:10,920 --> 00:31:12,920 Ahora vemos lo que es el KeyCode. 675 00:31:12,920 --> 00:31:14,920 Cuando hacemos un input de tipo GetKey, 676 00:31:14,920 --> 00:31:16,920 veis que yo mientras estoy escribiendo, 677 00:31:16,920 --> 00:31:17,920 voy a ponerlo, 678 00:31:17,920 --> 00:31:19,920 salen tres opciones. 679 00:31:19,920 --> 00:31:21,920 Y esto va a pasar con muchas más cosas. 680 00:31:21,920 --> 00:31:22,920 Por eso es importante 681 00:31:22,920 --> 00:31:24,920 que nos detengamos aquí un poquillo. 682 00:31:24,920 --> 00:31:26,920 Está el GetKeyDown, 683 00:31:26,920 --> 00:31:28,920 el GetKeyUp y el GetKey. 684 00:31:28,920 --> 00:31:32,920 Esto lo explica Álvaro en su vídeo. 685 00:31:32,920 --> 00:31:34,920 Aquí yo pongo dos. 686 00:31:34,920 --> 00:31:35,920 Por ahí se explica también 687 00:31:35,920 --> 00:31:37,920 que si no pone nada hace otra operación. 688 00:31:37,920 --> 00:31:39,920 Pero es porque es interesante 689 00:31:39,920 --> 00:31:44,920 o es importante que el software sepa 690 00:31:44,920 --> 00:31:48,920 que si recibimos la señal 691 00:31:48,920 --> 00:31:50,920 de cuando pulsamos la barra espaciadora 692 00:31:50,920 --> 00:31:51,920 según la pulsamos, 693 00:31:51,920 --> 00:31:52,920 es decir, al pulsarla, 694 00:31:52,920 --> 00:31:54,920 si mientras la tenemos mantenida 695 00:31:54,920 --> 00:31:56,920 o cuando soltamos. 696 00:31:56,920 --> 00:31:59,920 Si yo, por ejemplo, pongo GetKeyDown, 697 00:32:00,920 --> 00:32:02,920 lo que estamos diciendo es 698 00:32:02,920 --> 00:32:04,920 que la tecla que ahora pongamos 699 00:32:04,920 --> 00:32:07,920 detecte que se está ejecutando algo 700 00:32:07,920 --> 00:32:09,920 cuando la pulsemos. 701 00:32:09,920 --> 00:32:11,920 Si aquí pusiéramos GetKeyUp, 702 00:32:11,920 --> 00:32:13,920 significa que podemos pulsar 703 00:32:13,920 --> 00:32:15,920 la barra espaciadora, 704 00:32:15,920 --> 00:32:17,920 pero no pasa nada hasta que la soltemos. 705 00:32:17,920 --> 00:32:18,920 Y en ese momento se ejecutaría 706 00:32:18,920 --> 00:32:20,920 lo que hay aquí. 707 00:32:20,920 --> 00:32:23,920 Si por el contrario lo dejamos como GetKey, 708 00:32:23,920 --> 00:32:26,920 se refiere a que mientras tengamos pulsado, 709 00:32:26,920 --> 00:32:27,920 como está en el Update, 710 00:32:27,920 --> 00:32:29,920 cada fotograma va a ir interpretando 711 00:32:29,920 --> 00:32:30,920 que sucede algo. 712 00:32:30,920 --> 00:32:32,920 Por ejemplo, si estamos moviendo un personaje 713 00:32:32,920 --> 00:32:34,920 y usamos la tecla de avanzar, 714 00:32:34,920 --> 00:32:36,920 la W o la flecha hacia arriba, 715 00:32:36,920 --> 00:32:39,920 pues tendríamos que usar este método 716 00:32:39,920 --> 00:32:41,920 porque queremos que se vaya ejecutando 717 00:32:41,920 --> 00:32:43,920 continuamente mientras mantengamos pulsada. 718 00:32:43,920 --> 00:32:46,920 Entonces, aquí es donde tenemos que decir 719 00:32:46,920 --> 00:32:48,920 de qué forma recibimos ese input. 720 00:32:48,920 --> 00:32:50,920 Aquí estamos diciendo, en este caso, 721 00:32:50,920 --> 00:32:55,920 que sea mientras mantenemos una tecla pulsada. 722 00:32:55,920 --> 00:32:57,920 Pero es verdad que queremos que el impacto 723 00:32:57,920 --> 00:32:59,920 solo se realice una vez cada vez que pulsemos. 724 00:32:59,920 --> 00:33:01,920 Por tanto, este no es el mejor método. 725 00:33:01,920 --> 00:33:03,920 Lo mejor es que según pulsamos la tecla, 726 00:33:03,920 --> 00:33:05,920 pues se ejecuta una vez. 727 00:33:05,920 --> 00:33:07,920 Es decir, aunque mantengamos pulsado, 728 00:33:07,920 --> 00:33:09,920 solo se baja la tecla una vez. 729 00:33:09,920 --> 00:33:11,920 Y luego, posteriormente, 730 00:33:11,920 --> 00:33:14,920 ahora dejo paso a la palabra que me han dicho por ahí. 731 00:33:14,920 --> 00:33:17,920 Posteriormente hay que decirle, en este caso, 732 00:33:17,920 --> 00:33:19,920 qué tecla es la que se mete. 733 00:33:19,920 --> 00:33:21,920 Esto se puede meter de varias formas, 734 00:33:21,920 --> 00:33:23,920 pero la más común, 735 00:33:23,920 --> 00:33:26,920 cuando estamos hablando de inputs de teclado, 736 00:33:26,920 --> 00:33:28,920 es usar un comando que es el KeyCode, 737 00:33:28,920 --> 00:33:30,920 que luego, posteriormente, 738 00:33:30,920 --> 00:33:32,920 tiene las propiedades que se refieren 739 00:33:32,920 --> 00:33:34,920 a las distintas teclas que hay. 740 00:33:34,920 --> 00:33:36,920 ¿Veis qué es la IntelliSense? 741 00:33:36,920 --> 00:33:38,920 Si quiero poner al tocar la L, 742 00:33:38,920 --> 00:33:40,920 o al tocar la X, 743 00:33:40,920 --> 00:33:42,920 o al tocar la tecla Borrar, 744 00:33:42,920 --> 00:33:44,920 aquí están todas las teclas 745 00:33:44,920 --> 00:33:46,920 habitualmente que hay en un teclado. 746 00:33:46,920 --> 00:33:48,920 En nuestro caso, Tabulador, no. 747 00:33:48,920 --> 00:33:51,920 Queremos que sea la barra espaciadora. 748 00:33:52,920 --> 00:33:54,920 Space Key. 749 00:33:54,920 --> 00:33:56,920 Esa es la que vamos a poner al completar. 750 00:33:56,920 --> 00:33:58,920 De momento, lo que vamos a hacer 751 00:33:58,920 --> 00:34:00,920 es usar el teclado 752 00:34:00,920 --> 00:34:04,920 para ir interactuando con el juego. 753 00:34:04,920 --> 00:34:07,920 Esta estructura hay que aprendérsela. 754 00:34:07,920 --> 00:34:09,920 Cada vez que queramos decir 755 00:34:09,920 --> 00:34:11,920 que se va a interactuar 756 00:34:11,920 --> 00:34:13,920 con el teclado, 757 00:34:13,920 --> 00:34:15,920 en este caso, 758 00:34:15,920 --> 00:34:17,920 va a haber que apelar a la clase Input, 759 00:34:17,920 --> 00:34:19,920 decirle de qué modo recibe esa tecla, 760 00:34:19,920 --> 00:34:21,920 si al pulsarla, al soltarla o mientras la mantenemos, 761 00:34:21,920 --> 00:34:23,920 y luego hay que decir qué tecla. 762 00:34:23,920 --> 00:34:25,920 Con esta sintaxis. 763 00:34:25,920 --> 00:34:27,920 Esto hay que aprendérselo así. 764 00:34:27,920 --> 00:34:29,920 Lo tenéis en el tema que os estaba enseñando. 765 00:34:29,920 --> 00:34:31,920 Por ejemplo, aquí. 766 00:34:31,920 --> 00:34:33,920 Aquí pone los dos ejemplos 767 00:34:33,920 --> 00:34:35,920 que cuando pulsamos y soltamos, 768 00:34:35,920 --> 00:34:37,920 cuando pulsamos, 769 00:34:37,920 --> 00:34:39,920 lanzará el mensaje 770 00:34:39,920 --> 00:34:41,920 de barra espaciadora, está pulsado. 771 00:34:41,920 --> 00:34:43,920 Cuando soltamos, ya ha sido 772 00:34:43,920 --> 00:34:45,920 released, soltada. 773 00:34:45,920 --> 00:34:47,920 Luego, no es lo mismo 774 00:34:47,920 --> 00:34:49,920 que, por ejemplo, decir 775 00:34:49,920 --> 00:34:51,920 en GetKey, que mientras estemos dando 776 00:34:51,920 --> 00:34:53,920 a la flecha de arriba de la cruceta 777 00:34:53,920 --> 00:34:55,920 que tenemos en el teclado, 778 00:34:55,920 --> 00:34:57,920 va a ir poniendo fotograma 779 00:34:57,920 --> 00:34:59,920 mientras estemos pulsando. 780 00:34:59,920 --> 00:35:01,920 La tecla arriba está mantenida. 781 00:35:01,920 --> 00:35:03,920 Y cuando pulsamos la tecla de abajo, 782 00:35:03,920 --> 00:35:05,920 mientras la tengamos, cada fotograma 783 00:35:05,920 --> 00:35:07,920 se irá ejecutando, lo que pone aquí, 784 00:35:07,920 --> 00:35:09,920 que va a imprimir en consola, 785 00:35:09,920 --> 00:35:11,920 esa tecla está pulsada. 786 00:35:11,920 --> 00:35:13,920 ¿Alguien quería preguntar algo? 787 00:35:13,920 --> 00:35:15,920 Por favor, 788 00:35:15,920 --> 00:35:17,920 si es con... 789 00:35:17,920 --> 00:35:19,920 ¿Me oyes? 790 00:35:19,920 --> 00:35:21,920 Te oigo, pero bajísimo. 791 00:35:21,920 --> 00:35:23,920 Ahora mejor? 792 00:35:23,920 --> 00:35:25,920 Nada, muy poco. 793 00:35:25,920 --> 00:35:27,920 Te lo pongo por escrito, ¿vale? 794 00:35:27,920 --> 00:35:29,920 Vale. 795 00:35:29,920 --> 00:35:31,920 Es mejor, básicamente, 796 00:35:31,920 --> 00:35:33,920 porque así queda la grabación, 797 00:35:33,920 --> 00:35:35,920 porque por escrito no suele enseñar, pero bueno. 798 00:35:35,920 --> 00:35:37,920 Sí, escríbemelo. 799 00:35:39,920 --> 00:35:41,920 Entonces, mientras lo va escribiendo, 800 00:35:41,920 --> 00:35:43,920 voy preparando lo siguiente. 801 00:35:43,920 --> 00:35:45,920 Pues es, mientras pulsamos 802 00:35:45,920 --> 00:35:47,920 la tecla espacio, 803 00:35:47,920 --> 00:35:49,920 por ejemplo, podemos decir... 804 00:35:51,920 --> 00:35:53,920 Que lo demuestre, ¿no? 805 00:35:53,920 --> 00:35:55,920 Para saber yo que estamos 806 00:35:55,920 --> 00:35:57,920 pulsando, pues que diga 807 00:35:57,920 --> 00:35:59,920 has pulsado. 808 00:35:59,920 --> 00:36:01,920 ¿Vale? 809 00:36:01,920 --> 00:36:03,920 A la barra espaciadora. 810 00:36:05,920 --> 00:36:07,920 Vale. 811 00:36:07,920 --> 00:36:09,920 Sí. 812 00:36:09,920 --> 00:36:11,920 Sí, ahora voy a hacer la demostración. 813 00:36:11,920 --> 00:36:13,920 Está Francisco Javier preguntando. 814 00:36:13,920 --> 00:36:15,920 Entiendo que si dejas pulsado continuamente 815 00:36:15,920 --> 00:36:17,920 se ejecuta de manera infinita hasta que sueltas 816 00:36:17,920 --> 00:36:19,920 en el caso del GetKey. 817 00:36:19,920 --> 00:36:21,920 Efectivamente, ¿vale? 818 00:36:21,920 --> 00:36:23,920 Guardo, y ahora mismo tenemos un GetKeyDown. 819 00:36:23,920 --> 00:36:25,920 ¿Vale? Si yo ahora voy al 820 00:36:25,920 --> 00:36:27,920 al juego, 821 00:36:27,920 --> 00:36:29,920 ¿vale? 822 00:36:29,920 --> 00:36:31,920 Y le doy. Fijaos que no pasa nada 823 00:36:31,920 --> 00:36:33,920 hasta que yo, no sé si lo vais a oír, 824 00:36:33,920 --> 00:36:35,920 pero lo voy comentando, pulso la tecla 825 00:36:35,920 --> 00:36:37,920 y se lanza el mensaje, ¿vale? 826 00:36:37,920 --> 00:36:39,920 Y aunque yo pulse y deje pulsado, 827 00:36:39,920 --> 00:36:41,920 tengo pulsado ahora mismo 828 00:36:41,920 --> 00:36:43,920 la barra espaciadora, no se están sumando más mensajes. 829 00:36:43,920 --> 00:36:45,920 Solo se lanza una vez. ¿Vale? 830 00:36:45,920 --> 00:36:47,920 Es decir, he dado tres veces y cada vez 831 00:36:47,920 --> 00:36:49,920 que he pulsado, pues me ha lanzado el mensaje. 832 00:36:49,920 --> 00:36:51,920 ¿Vale? ¿Qué pasaría 833 00:36:51,920 --> 00:36:53,920 si yo esto lo pongo 834 00:36:53,920 --> 00:36:55,920 en vez de GetKeyDown, lo pongo como GetKey? 835 00:36:55,920 --> 00:36:57,920 ¿Vale? Esto recordad que es 836 00:36:57,920 --> 00:36:59,920 porque está dentro del Update y cada fotograma 837 00:36:59,920 --> 00:37:01,920 está buscando qué pasa aquí dentro. Si lo pusiéramos 838 00:37:01,920 --> 00:37:03,920 en el Start, 839 00:37:03,920 --> 00:37:05,920 solo se ejecutaría una vez si 840 00:37:05,920 --> 00:37:07,920 estamos pulsando la tecla a la vez que 841 00:37:07,920 --> 00:37:09,920 se inicia este script. 842 00:37:09,920 --> 00:37:11,920 Solo se ejecuta una vez. 843 00:37:11,920 --> 00:37:13,920 Entonces, esto hay que tener cuidado siempre 844 00:37:13,920 --> 00:37:15,920 de ver dónde estamos asignando cada cosa. 845 00:37:15,920 --> 00:37:17,920 Si ahora decimos GetKey, 846 00:37:17,920 --> 00:37:19,920 pues vamos aquí, 847 00:37:19,920 --> 00:37:21,920 lanzo el juego 848 00:37:21,920 --> 00:37:23,920 y yo voy a pulsar y voy a mantener presionado. 849 00:37:23,920 --> 00:37:25,920 Entonces vais a ver que van a empezar a sumarse 850 00:37:25,920 --> 00:37:27,920 los mensajes porque mientras 851 00:37:27,920 --> 00:37:29,920 mantengo pulsado y le doy ahora mismo y mantengo pulsado, 852 00:37:29,920 --> 00:37:31,920 ¿vale? Pues todos esos fotogramas 853 00:37:31,920 --> 00:37:33,920 se están ejecutando. 854 00:37:33,920 --> 00:37:35,920 Cuando yo suelto, suelto, 855 00:37:35,920 --> 00:37:37,920 ahí ha parado. Vuelvo a pulsar, 856 00:37:37,920 --> 00:37:39,920 veréis que ahora empieza a moverse esto, 857 00:37:39,920 --> 00:37:41,920 porque ya más de mil mensajes no los contabiliza, 858 00:37:41,920 --> 00:37:43,920 pero veis que va cambiando el código de tiempo. 859 00:37:43,920 --> 00:37:45,920 Mientras mantengo pulsado, se ejecuta suelto. 860 00:37:45,920 --> 00:37:47,920 Y ahora ya no avanza 861 00:37:47,920 --> 00:37:49,920 el tiempo, ¿vale? 862 00:37:49,920 --> 00:37:51,920 Eso es básicamente lo que permite que 863 00:37:51,920 --> 00:37:53,920 el juego vaya sabiendo si 864 00:37:53,920 --> 00:37:55,920 estamos pulsando una tecla y si tiene que avanzar 865 00:37:55,920 --> 00:37:57,920 el personaje medio segundo, 866 00:37:57,920 --> 00:37:59,920 tres segundos, pues según lo que estemos pulsando. 867 00:38:01,920 --> 00:38:03,920 ¿Vale? 868 00:38:05,920 --> 00:38:07,920 Pues sigo, 869 00:38:07,920 --> 00:38:09,920 que entiendo que 870 00:38:09,920 --> 00:38:11,920 entonces 871 00:38:11,920 --> 00:38:13,920 tenemos aquí 872 00:38:13,920 --> 00:38:15,920 para continuar. 873 00:38:15,920 --> 00:38:17,920 Aquí lo que vamos a decir, a ver, que no sé 874 00:38:17,920 --> 00:38:19,920 si me ha escrito... 875 00:38:19,920 --> 00:38:21,920 Vale, entiendo que 876 00:38:21,920 --> 00:38:23,920 todo ha controlado. Vale. 877 00:38:23,920 --> 00:38:25,920 Y no me decís, ¿eh? 878 00:38:25,920 --> 00:38:27,920 Cuando damos a la barra espaciadora, lo que vamos a decir 879 00:38:27,920 --> 00:38:29,920 es que haya... A ver, que creo que 880 00:38:29,920 --> 00:38:31,920 alguien me ha puesto... Sí. 881 00:38:31,920 --> 00:38:33,920 Alguien ha pedido palabra. 882 00:38:35,920 --> 00:38:37,920 ... 883 00:38:39,920 --> 00:38:41,920 Bueno, entiendo que 884 00:38:41,920 --> 00:38:43,920 ha sido un error. 885 00:38:43,920 --> 00:38:45,920 No, bajísimo. 886 00:38:47,920 --> 00:38:49,920 A ver, voy a ponerme yo... 887 00:38:51,920 --> 00:38:53,920 Es que, de verdad 888 00:38:53,920 --> 00:38:55,920 que es que no te oigo. Oigo que hablas, pero 889 00:38:55,920 --> 00:38:57,920 no entiendo lo que dices. A ver, voy a probar yo 890 00:38:57,920 --> 00:38:59,920 si es que yo tengo el... 891 00:38:59,920 --> 00:39:01,920 Voy a poner música en YouTube 892 00:39:01,920 --> 00:39:03,920 un segundo para ver si me 893 00:39:03,920 --> 00:39:05,920 está llegando el sonido. 894 00:39:07,920 --> 00:39:09,920 A ver... 895 00:39:13,920 --> 00:39:15,920 Nada, sí que lo... 896 00:39:15,920 --> 00:39:17,920 Sí que escucho. 897 00:39:17,920 --> 00:39:19,920 Algo pasa con el nivel de tu micrófono. 898 00:39:23,920 --> 00:39:25,920 Siempre en el update. Sí. 899 00:39:25,920 --> 00:39:27,920 Siempre que queramos captar una interacción 900 00:39:27,920 --> 00:39:29,920 tiene que estar, recordad, todo el rato 901 00:39:29,920 --> 00:39:31,920 revisando que se está 902 00:39:31,920 --> 00:39:33,920 realizando la interacción. Si lo ponemos en el start 903 00:39:33,920 --> 00:39:35,920 esto funciona una vez y ya se olvida 904 00:39:35,920 --> 00:39:37,920 lo que hay aquí. Solo se asigna según se 905 00:39:37,920 --> 00:39:39,920 arranca. Todo lo que sea interacciones 906 00:39:39,920 --> 00:39:41,920 tenemos que ir usando el update. 907 00:39:41,920 --> 00:39:43,920 Luego aparecerán más tipos de 908 00:39:43,920 --> 00:39:45,920 momentos, de métodos que marcan momentos 909 00:39:45,920 --> 00:39:47,920 pero sí, efectivamente 910 00:39:47,920 --> 00:39:49,920 en el update. Porque si no 911 00:39:49,920 --> 00:39:51,920 no se está metiendo aquí continuamente para comprobar 912 00:39:51,920 --> 00:39:53,920 que esto sea cierto. 913 00:39:53,920 --> 00:39:55,920 Importante, me sirve 914 00:39:55,920 --> 00:39:57,920 que la condición o condiciones 915 00:39:57,920 --> 00:39:59,920 que pueda haber más de una, que tengamos aquí 916 00:39:59,920 --> 00:40:01,920 lo que hace 917 00:40:01,920 --> 00:40:03,920 básicamente es devolver si algo es 918 00:40:03,920 --> 00:40:05,920 verdadero o falso. Es decir, 919 00:40:05,920 --> 00:40:07,920 si se cumple la condición, 920 00:40:07,920 --> 00:40:09,920 se cumple, pues esto significa 921 00:40:09,920 --> 00:40:11,920 verdadero. Internamente está 922 00:40:11,920 --> 00:40:13,920 interpretando 923 00:40:13,920 --> 00:40:15,920 esto que es un verdadero. 924 00:40:15,920 --> 00:40:17,920 En ciertas ocasiones 925 00:40:17,920 --> 00:40:19,920 hay que pensarlo así. Si 926 00:40:19,920 --> 00:40:21,920 es verdadero lo que hay dentro, como que estoy pulsando 927 00:40:21,920 --> 00:40:23,920 la tecla espaciadora, pues se genera esto. 928 00:40:23,920 --> 00:40:25,920 Aquí lo que vamos a decir, por ejemplo, 929 00:40:25,920 --> 00:40:27,920 es que cada vez que pulse la tecla 930 00:40:27,920 --> 00:40:29,920 impacto 931 00:40:29,920 --> 00:40:31,920 el impacto 932 00:40:31,920 --> 00:40:33,920 valga 50 933 00:40:33,920 --> 00:40:35,920 y ese impacto 934 00:40:35,920 --> 00:40:37,920 va a ser lo que va a hacer 935 00:40:37,920 --> 00:40:39,920 es afectar al escudo que tenemos 936 00:40:39,920 --> 00:40:41,920 y vamos a tener un escudo 937 00:40:41,920 --> 00:40:43,920 que va a ser lo que vale 938 00:40:43,920 --> 00:40:45,920 ya escudo menos 939 00:40:45,920 --> 00:40:47,920 impacto. Esto lo vimos 940 00:40:47,920 --> 00:40:49,920 el otro día y podía sonar un poco 941 00:40:49,920 --> 00:40:51,920 extraño. 942 00:40:51,920 --> 00:40:53,920 ¿Entendemos lo que quiere 943 00:40:53,920 --> 00:40:55,920 decir esto? Que se repite 944 00:40:55,920 --> 00:40:57,920 la variable. 945 00:40:57,920 --> 00:40:59,920 Básicamente aquí 946 00:40:59,920 --> 00:41:01,920 ya os dije que no es como un algoritmo 947 00:41:01,920 --> 00:41:03,920 de toda la vida. Lo importante es 948 00:41:03,920 --> 00:41:05,920 entender que aquí estamos abriendo 949 00:41:05,920 --> 00:41:07,920 una variable, 950 00:41:07,920 --> 00:41:09,920 estamos apelando a una variable, 951 00:41:09,920 --> 00:41:11,920 ponemos un igual que significa 952 00:41:11,920 --> 00:41:13,920 esta variable va a pasar a valer lo que pongamos 953 00:41:13,920 --> 00:41:15,920 aquí. 954 00:41:15,920 --> 00:41:17,920 Para decir que hay que restar 955 00:41:17,920 --> 00:41:19,920 la escudo, lo que es el impacto, 956 00:41:19,920 --> 00:41:21,920 aquí hay que volver a poner 957 00:41:21,920 --> 00:41:23,920 impacto. No vale componer simplemente 958 00:41:23,920 --> 00:41:25,920 que a lo mejor es lógico decir 959 00:41:25,920 --> 00:41:27,920 en este momento escudo menos impacto. 960 00:41:27,920 --> 00:41:29,920 Hay que guardarlo en su variable. 961 00:41:29,920 --> 00:41:31,920 Escudo va a pasar a valer 962 00:41:31,920 --> 00:41:33,920 lo que yo le diga 963 00:41:33,920 --> 00:41:35,920 aquí a continuación. 964 00:41:35,920 --> 00:41:37,920 Escudo que empieza siendo 100 965 00:41:37,920 --> 00:41:39,920 va a ser 100 menos 50 y va a valer 50. 966 00:41:39,920 --> 00:41:41,920 De hecho voy a poner un impacto 967 00:41:41,920 --> 00:41:43,920 un poco menos redondo, 40. 968 00:41:43,920 --> 00:41:45,920 Entonces empieza el juego 969 00:41:45,920 --> 00:41:47,920 100 y dice 970 00:41:47,920 --> 00:41:49,920 el escudo va a valer ahora 971 00:41:49,920 --> 00:41:51,920 100 menos 40. 972 00:41:51,920 --> 00:41:53,920 Cuando vuelva a dar otra vez 973 00:41:53,920 --> 00:41:55,920 y voy a poner porque solo quiero que ocurra una vez 974 00:41:55,920 --> 00:41:57,920 con gateKeyDown, cuando yo le dé 975 00:41:57,920 --> 00:41:59,920 se ejecutará otra vez el escudo 976 00:41:59,920 --> 00:42:01,920 y será el escudo que había guardado 977 00:42:01,920 --> 00:42:03,920 anteriormente menos 40. 978 00:42:03,920 --> 00:42:05,920 Y así consecutivamente. 979 00:42:05,920 --> 00:42:07,920 ¿Eso qué significa? Que si yo 980 00:42:07,920 --> 00:42:09,920 lanzo el juego ahora, a ver si he guardado... 981 00:42:09,920 --> 00:42:11,920 Sí, sí he guardado. 982 00:42:11,920 --> 00:42:13,920 Lanzo el juego, 983 00:42:13,920 --> 00:42:15,920 cuando arranca el juego 984 00:42:15,920 --> 00:42:17,920 yo le doy play 985 00:42:17,920 --> 00:42:19,920 a la barra espaciadora. 986 00:42:19,920 --> 00:42:21,920 ¿Algo está pasando? 987 00:42:33,920 --> 00:42:35,920 No se está viendo nada. 988 00:42:35,920 --> 00:42:37,920 Importante. Otra de las cosas que ponía 989 00:42:37,920 --> 00:42:39,920 en el enunciado es que tenemos que ir mostrando 990 00:42:39,920 --> 00:42:41,920 en consola, porque si no de ninguna forma 991 00:42:41,920 --> 00:42:43,920 vamos a ver qué ocurre. ¿Qué va sucediendo? 992 00:42:43,920 --> 00:42:45,920 Internamente 993 00:42:45,920 --> 00:42:47,920 escudo va valiendo menos. 994 00:42:47,920 --> 00:42:49,920 Pero para ir viendo qué sucede, 995 00:42:49,920 --> 00:42:51,920 en este caso ahora mismo tenemos la forma de 996 00:42:51,920 --> 00:42:53,920 mostrarlo en consola. 997 00:42:53,920 --> 00:42:55,920 Cuando arranca el juego voy a poner 998 00:42:55,920 --> 00:42:57,920 el escudo 999 00:42:57,920 --> 00:42:59,920 de la nave 1000 00:42:59,920 --> 00:43:01,920 tiene una energía 1001 00:43:01,920 --> 00:43:03,920 de... 1002 00:43:03,920 --> 00:43:05,920 Y aquí os dije el otro día 1003 00:43:05,920 --> 00:43:07,920 la concatenación. 1004 00:43:07,920 --> 00:43:09,920 Cuando vamos poniendo mases 1005 00:43:09,920 --> 00:43:11,920 al lado de un string, lo que vamos haciendo 1006 00:43:11,920 --> 00:43:13,920 es convertir en texto 1007 00:43:13,920 --> 00:43:15,920 a los números, aunque sean de tipo numérico, 1008 00:43:15,920 --> 00:43:17,920 sirve para convertirlo 1009 00:43:17,920 --> 00:43:19,920 en número. Tiene una energía de 1010 00:43:19,920 --> 00:43:21,920 en este caso 100 1011 00:43:21,920 --> 00:43:23,920 y luego le voy a decir... 1012 00:43:23,920 --> 00:43:25,920 Esto es importante que entendáis lo que estoy haciendo 1013 00:43:25,920 --> 00:43:27,920 que ya lo hemos hablado más veces, 1014 00:43:27,920 --> 00:43:29,920 por eso voy un poco más rápido. 1015 00:43:29,920 --> 00:43:31,920 Y tiene... 1016 00:43:31,920 --> 00:43:33,920 ¿Cuántas vidas? 1017 00:43:33,920 --> 00:43:35,920 Se ve aquí 1018 00:43:35,920 --> 00:43:37,920 el número de vidas más 1019 00:43:39,920 --> 00:43:41,920 vidas. 1020 00:43:41,920 --> 00:43:43,920 Cuando arranca el juego 1021 00:43:43,920 --> 00:43:45,920 va a poner la frase 1022 00:43:45,920 --> 00:43:47,920 el escudo de la nave tiene una energía de... 1023 00:43:47,920 --> 00:43:49,920 pondrá el número que tenga 1024 00:43:49,920 --> 00:43:51,920 la variable 1025 00:43:51,920 --> 00:43:53,920 y tiene, esto es literal, 1026 00:43:53,920 --> 00:43:55,920 en este caso va a poner 3 vidas. 1027 00:43:55,920 --> 00:43:57,920 Cuando arranque el juego 1028 00:43:57,920 --> 00:43:59,920 va a poner 1029 00:43:59,920 --> 00:44:01,920 he guardado... 1030 00:44:01,920 --> 00:44:03,920 Arranco el juego 1031 00:44:03,920 --> 00:44:05,920 y según arranca el juego pone el escudo de la nave 1032 00:44:05,920 --> 00:44:07,920 tiene una energía de 100 y tiene 3 vidas. 1033 00:44:07,920 --> 00:44:09,920 Esto, como os estáis dando cuenta, 1034 00:44:09,920 --> 00:44:11,920 no es algo literal que yo he puesto, está cogiendo el valor 1035 00:44:11,920 --> 00:44:13,920 con el que se ha inicializado. 1036 00:44:13,920 --> 00:44:15,920 Son variables 1037 00:44:15,920 --> 00:44:17,920 que podemos también convertir 1038 00:44:17,920 --> 00:44:19,920 en textos de esta forma. 1039 00:44:19,920 --> 00:44:21,920 Si cogemos un texto 1040 00:44:21,920 --> 00:44:23,920 y se lo sumamos, lo concatenamos 1041 00:44:23,920 --> 00:44:25,920 no es una suma, es igual que aquí, no es un igual 1042 00:44:25,920 --> 00:44:27,920 es una asignación. Hacemos esta 1043 00:44:27,920 --> 00:44:29,920 concatenación pues nos permite ir viendo estos mensajes. 1044 00:44:29,920 --> 00:44:31,920 ¿Qué ocurre? Que aquí lo que vamos a 1045 00:44:31,920 --> 00:44:33,920 creer es que aparte cuando 1046 00:44:33,920 --> 00:44:35,920 pulsemos, no todos los fotogramas, solo 1047 00:44:35,920 --> 00:44:37,920 cuando pulsemos la tecla espacio 1048 00:44:37,920 --> 00:44:39,920 sucede esto y nos devuelve el mensaje 1049 00:44:39,920 --> 00:44:41,920 de cuánto queda. 1050 00:44:41,920 --> 00:44:43,920 Nuevamente, el orden de donde 1051 00:44:43,920 --> 00:44:45,920 vamos poniendo las cosas es muy importante. 1052 00:44:45,920 --> 00:44:47,920 Ahora lo vemos más concreto. 1053 00:44:47,920 --> 00:44:49,920 La nave 1054 00:44:49,920 --> 00:44:51,920 tiene 1055 00:44:55,920 --> 00:44:57,920 tiene tanto escudo 1056 00:45:01,920 --> 00:45:03,920 Es decir, la nave tiene 1057 00:45:03,920 --> 00:45:05,920 un espacio literal y pondrá 1058 00:45:05,920 --> 00:45:07,920 el escudo que tenga en ese momento 1059 00:45:07,920 --> 00:45:09,920 que se ha guardado aquí, después de hacerse esta operación 1060 00:45:09,920 --> 00:45:11,920 de escudo. 1061 00:45:11,920 --> 00:45:13,920 ¿Esto qué significa? Que yo ahora cuando vaya 1062 00:45:13,920 --> 00:45:15,920 al juego le doy 1063 00:45:15,920 --> 00:45:17,920 según arranca me pone la vida y cuando yo 1064 00:45:17,920 --> 00:45:19,920 dé a la barra espaciadora 1065 00:45:19,920 --> 00:45:21,920 la nave tiene 60 1066 00:45:21,920 --> 00:45:23,920 de escudo. Veis que aquí se ha juntado 1067 00:45:23,920 --> 00:45:25,920 porque como no he dejado un espacio literal 1068 00:45:25,920 --> 00:45:27,920 aquí, no lo respeta. 1069 00:45:27,920 --> 00:45:29,920 Esto es fácil de solucionar. Y si vuelvo a dar 1070 00:45:29,920 --> 00:45:31,920 a la tecla espacio, cuando le vuelva a dar 1071 00:45:31,920 --> 00:45:33,920 volverá a hacer esta operación. 1072 00:45:33,920 --> 00:45:35,920 Todo lo que hay dentro del if. 1073 00:45:35,920 --> 00:45:37,920 Si el escudo ha pasado a valer 60, ahora 1074 00:45:37,920 --> 00:45:39,920 uy va, que estoy aquí. Como no he guardado 1075 00:45:39,920 --> 00:45:41,920 no pasa nada, sigue la ejecución. Le doy a la 1076 00:45:41,920 --> 00:45:43,920 barra espaciadora 1077 00:45:43,920 --> 00:45:45,920 a ver que como he cambiado el código creo que 1078 00:45:45,920 --> 00:45:47,920 se ha ido el traste. 1079 00:45:47,920 --> 00:45:49,920 Ahí está. 1080 00:45:49,920 --> 00:45:51,920 Ahora, vuelvo a darle, arranca 1081 00:45:51,920 --> 00:45:53,920 el juego, pone 100, le doy una vez, 60 1082 00:45:53,920 --> 00:45:55,920 le vuelvo a dar, 20, le vuelvo a dar, 1083 00:45:55,920 --> 00:45:57,920 menos 20 y así voy restando. 1084 00:45:57,920 --> 00:45:59,920 Cada vez que le voy dando 1085 00:45:59,920 --> 00:46:01,920 se va generando la condición. 1086 00:46:01,920 --> 00:46:03,920 Importante, no es lo mismo poner 1087 00:46:03,920 --> 00:46:05,920 este mensaje aquí que ponerlo fuera del if. 1088 00:46:05,920 --> 00:46:07,920 Porque si es fuera del if 1089 00:46:07,920 --> 00:46:09,920 se irá cada fotograma 1090 00:46:09,920 --> 00:46:11,920 mostrando este mensaje. 1091 00:46:11,920 --> 00:46:13,920 Entonces, se va a convertir 1092 00:46:13,920 --> 00:46:15,920 esto en una amalgama de cosas, 1093 00:46:15,920 --> 00:46:17,920 de mensajes que no va a dejar nada claro. 1094 00:46:17,920 --> 00:46:19,920 Va a poner el primero, ha salido 1095 00:46:19,920 --> 00:46:21,920 a milésima de segundo el primer mensaje 1096 00:46:21,920 --> 00:46:23,920 y ahora cuando le dé a la barra espaciadora 1097 00:46:23,920 --> 00:46:25,920 ya todos los fotogramas me pone cuántos tienen. 1098 00:46:25,920 --> 00:46:27,920 Le vuelvo a dar y sale. 1099 00:46:27,920 --> 00:46:29,920 Yo quiero solo que se ejecute 1100 00:46:29,920 --> 00:46:31,920 en un momento, aunque esté en el update, 1101 00:46:31,920 --> 00:46:33,920 solo en el momento que se ejecuta 1102 00:46:33,920 --> 00:46:35,920 en ese fotograma que se ejecuta esta acción. 1103 00:46:35,920 --> 00:46:37,920 ¿Se entiende esto? 1104 00:46:39,920 --> 00:46:41,920 Es importante ir viendo 1105 00:46:41,920 --> 00:46:43,920 en dónde vamos 1106 00:46:43,920 --> 00:46:45,920 los bloques que vamos a generar. 1107 00:46:45,920 --> 00:46:47,920 Estos bloques son esenciales, porque si no 1108 00:46:47,920 --> 00:46:49,920 nos volvemos un poco locos. 1109 00:46:49,920 --> 00:46:51,920 Entonces ya hemos generado el primer 1110 00:46:51,920 --> 00:46:53,920 impacto. La gracia 1111 00:46:53,920 --> 00:46:55,920 de un juego como este 1112 00:46:55,920 --> 00:46:57,920 quizás sea que 1113 00:46:57,920 --> 00:46:59,920 el número del impacto 1114 00:46:59,920 --> 00:47:01,920 ha puesto 1115 00:47:01,920 --> 00:47:03,920 un compañero. Cada bloque es como un programita 1116 00:47:03,920 --> 00:47:05,920 aparte. 1117 00:47:05,920 --> 00:47:07,920 Sí, es como 1118 00:47:07,920 --> 00:47:09,920 una frase aparte. 1119 00:47:09,920 --> 00:47:11,920 Sí, como compartimentos. 1120 00:47:11,920 --> 00:47:13,920 Igual que aquí hablo de cajas, 1121 00:47:13,920 --> 00:47:15,920 pues luego estas cajas 1122 00:47:15,920 --> 00:47:17,920 también hay como compartimentos 1123 00:47:17,920 --> 00:47:19,920 estancos. Entonces hay que ir 1124 00:47:19,920 --> 00:47:21,920 evaluando todo según el compartimento en el que está. 1125 00:47:21,920 --> 00:47:23,920 Además, estos son matrioscas. 1126 00:47:23,920 --> 00:47:25,920 Matrioscas, sí, las muñecas 1127 00:47:25,920 --> 00:47:27,920 que se van a meter una dentro de otra. 1128 00:47:27,920 --> 00:47:29,920 Pues eso, hay que ir viendo qué se mete dentro de qué. 1129 00:47:29,920 --> 00:47:31,920 Lo que os decía, 1130 00:47:31,920 --> 00:47:33,920 la gracia... 1131 00:47:33,920 --> 00:47:35,920 Un segundín... 1132 00:47:35,920 --> 00:47:37,920 Yo tengo una chuleta por aquí que así me pierdo 1133 00:47:37,920 --> 00:47:39,920 menos. 1134 00:47:39,920 --> 00:47:41,920 La gracia de esto es que 1135 00:47:41,920 --> 00:47:43,920 el impacto 1136 00:47:43,920 --> 00:47:45,920 se vaya generando de manera aleatoria. 1137 00:47:45,920 --> 00:47:47,920 Es decir, que no siempre valga 40, porque si no el juego 1138 00:47:47,920 --> 00:47:49,920 es muy predecible. 1139 00:47:49,920 --> 00:47:51,920 Aquí ya es cuando vamos metiendo más 1140 00:47:51,920 --> 00:47:53,920 instrucciones, que es lo que vamos a ir 1141 00:47:53,920 --> 00:47:55,920 aprendiendo a lo largo del curso. Como por ejemplo, 1142 00:47:55,920 --> 00:47:57,920 en vez de yo poner aquí 40, 1143 00:47:57,920 --> 00:47:59,920 hay otra clase 1144 00:47:59,920 --> 00:48:01,920 y otra operación que nos permite 1145 00:48:01,920 --> 00:48:03,920 generar números aleatorios. 1146 00:48:03,920 --> 00:48:05,920 Para eso, 1147 00:48:05,920 --> 00:48:07,920 esto lo digo aquí que 1148 00:48:07,920 --> 00:48:09,920 creo que en el enunciado 1149 00:48:09,920 --> 00:48:11,920 no lo ponía. 1150 00:48:13,920 --> 00:48:15,920 Creo que sí que lo ponía en los... 1151 00:48:17,920 --> 00:48:19,920 Bueno, aquí os pone lo de crear la 1152 00:48:19,920 --> 00:48:21,920 variable booleana para 1153 00:48:21,920 --> 00:48:23,920 tener claro 1154 00:48:23,920 --> 00:48:25,920 si está vivo o no. 1155 00:48:25,920 --> 00:48:27,920 Porque, ojo, 1156 00:48:27,920 --> 00:48:29,920 y voy a hacer una cosa antes de 1157 00:48:29,920 --> 00:48:31,920 pasar al otro. Aquí podemos 1158 00:48:31,920 --> 00:48:33,920 meter más condiciones, que esto lo ponía en el tema 1159 00:48:33,920 --> 00:48:35,920 cero también. Luego podemos 1160 00:48:35,920 --> 00:48:37,920 ir concatenando condiciones. 1161 00:48:37,920 --> 00:48:39,920 Si yo aquí pongo, cuando pulse 1162 00:48:39,920 --> 00:48:41,920 la tecla espacio y aparte el personaje 1163 00:48:41,920 --> 00:48:43,920 esté vivo, 1164 00:48:43,920 --> 00:48:45,920 si el personaje está vivo 1165 00:48:45,920 --> 00:48:47,920 o si vivo igual a 1166 00:48:47,920 --> 00:48:49,920 true, 1167 00:48:49,920 --> 00:48:51,920 entonces sí se ejecuta. 1168 00:48:51,920 --> 00:48:53,920 ¿Qué significa esto? Que si en algún momento muriera, 1169 00:48:53,920 --> 00:48:55,920 como esto pasaría 1170 00:48:55,920 --> 00:48:57,920 a valer falso, 1171 00:48:57,920 --> 00:48:59,920 esta condición no se estaría 1172 00:48:59,920 --> 00:49:01,920 toda completa 1173 00:49:01,920 --> 00:49:03,920 ejecutando, 1174 00:49:03,920 --> 00:49:05,920 dando 1175 00:49:05,920 --> 00:49:07,920 un verdadero de respuesta. 1176 00:49:07,920 --> 00:49:09,920 No se estaría cumpliendo la condición. 1177 00:49:09,920 --> 00:49:11,920 Si este personaje muriera, esto ya, 1178 00:49:11,920 --> 00:49:13,920 por mucho que demos a la barra espaciadora, una condición sí se 1179 00:49:13,920 --> 00:49:15,920 cumple, pero la otra no. 1180 00:49:15,920 --> 00:49:17,920 Aquí, 1181 00:49:17,920 --> 00:49:19,920 dentro de estos paréntesis, podemos meter múltiples condiciones. 1182 00:49:19,920 --> 00:49:21,920 Esto, para cuando 1183 00:49:21,920 --> 00:49:23,920 le echéis un ojo, 1184 00:49:23,920 --> 00:49:25,920 en el tema, 1185 00:49:25,920 --> 00:49:27,920 en el primer tema, 1186 00:49:29,920 --> 00:49:31,920 hay una sección 1187 00:49:31,920 --> 00:49:33,920 que es en estructurar de control, 1188 00:49:33,920 --> 00:49:35,920 que es donde estamos viendo estas cosas, 1189 00:49:35,920 --> 00:49:37,920 que habla de las 1190 00:49:37,920 --> 00:49:39,920 concatenaciones de... 1191 00:49:39,920 --> 00:49:41,920 Vale, aquí. 1192 00:49:41,920 --> 00:49:43,920 Por eso, si tienen 1193 00:49:43,920 --> 00:49:45,920 que darse a dos circunstancias separadas por i, 1194 00:49:45,920 --> 00:49:47,920 en este caso, 1195 00:49:47,920 --> 00:49:49,920 se tiene que dar tal. Por ejemplo, aquí, 1196 00:49:49,920 --> 00:49:51,920 es parte del enunciado 1197 00:49:51,920 --> 00:49:53,920 de esta 1198 00:49:53,920 --> 00:49:55,920 tarea, que se pueden usar 1199 00:49:55,920 --> 00:49:57,920 estas partes. Aquí, si el impacto 1200 00:49:57,920 --> 00:49:59,920 es menor o igual a la energía, y aparte, 1201 00:49:59,920 --> 00:50:01,920 además, el escudo 1202 00:50:01,920 --> 00:50:03,920 es falso, se realiza 1203 00:50:03,920 --> 00:50:05,920 esto que hay aquí. 1204 00:50:05,920 --> 00:50:07,920 Entonces, hay que ir 1205 00:50:07,920 --> 00:50:09,920 pensando en estos paréntesis 1206 00:50:09,920 --> 00:50:11,920 como, digamos, 1207 00:50:11,920 --> 00:50:13,920 una recopilación de condiciones 1208 00:50:13,920 --> 00:50:15,920 que se pueden dar, que pueden ser 1209 00:50:15,920 --> 00:50:17,920 múltiples, que os suene eso. 1210 00:50:17,920 --> 00:50:19,920 Entonces, yo cuando... 1211 00:50:19,920 --> 00:50:21,920 Ahora mismo no va a haber ningún problema porque está vivo, 1212 00:50:21,920 --> 00:50:23,920 pero fijaos también 1213 00:50:23,920 --> 00:50:25,920 algo importante, que es que esto de vivo, 1214 00:50:25,920 --> 00:50:27,920 ahora el true, en vez de hacerlo 1215 00:50:27,920 --> 00:50:29,920 como aquí, tiene dos paréntesis. 1216 00:50:29,920 --> 00:50:31,920 Dos iguales, pero nada. 1217 00:50:31,920 --> 00:50:33,920 ¿Por qué a veces hay dos 1218 00:50:33,920 --> 00:50:35,920 de cada tipo? Por decirlo así. 1219 00:50:35,920 --> 00:50:37,920 Bueno, no siempre es así. 1220 00:50:37,920 --> 00:50:39,920 El otro día vimos que para sumar una 1221 00:50:39,920 --> 00:50:41,920 variable, 1222 00:50:41,920 --> 00:50:43,920 podíamos usar el más más o el menos menos. 1223 00:50:43,920 --> 00:50:45,920 Aquí no es lo mismo que voy a explicar. 1224 00:50:45,920 --> 00:50:47,920 Pero bueno, que hay distintos operadores, 1225 00:50:47,920 --> 00:50:49,920 que lo tenéis todos en ese tema, o al menos 1226 00:50:49,920 --> 00:50:51,920 los esenciales. Pero cuando estamos 1227 00:50:51,920 --> 00:50:53,920 dentro de los condicionales, 1228 00:50:53,920 --> 00:50:55,920 lo que queremos hacer no es asignar un valor, 1229 00:50:55,920 --> 00:50:57,920 no queremos que vivo pase a ser true 1230 00:50:57,920 --> 00:50:59,920 o escudo pase a ser 100, 1231 00:50:59,920 --> 00:51:01,920 o que vivo pase a ser true en este caso. 1232 00:51:01,920 --> 00:51:03,920 No, lo que queremos es hacer una comparación. 1233 00:51:03,920 --> 00:51:05,920 Cuando queremos 1234 00:51:05,920 --> 00:51:07,920 hacer comparaciones, 1235 00:51:07,920 --> 00:51:09,920 se duplican los signos. 1236 00:51:09,920 --> 00:51:11,920 Creo que en todos, de hecho. 1237 00:51:11,920 --> 00:51:13,920 Si queremos que si vivo 1238 00:51:13,920 --> 00:51:15,920 es igual a true, 1239 00:51:15,920 --> 00:51:17,920 aquí sí que es igual a. 1240 00:51:17,920 --> 00:51:19,920 No es como aquí, que es asigno algo. 1241 00:51:19,920 --> 00:51:21,920 Luego hay otro, que es 1242 00:51:21,920 --> 00:51:23,920 si vivo es diferente a 1243 00:51:23,920 --> 00:51:25,920 true, que es este operador 1244 00:51:25,920 --> 00:51:27,920 que tenemos aquí, y que en el tema 1245 00:51:27,920 --> 00:51:29,920 también tendréis 1246 00:51:29,920 --> 00:51:31,920 operadores seguramente. 1247 00:51:31,920 --> 00:51:33,920 Una parte 1248 00:51:33,920 --> 00:51:35,920 que tenía más operadores, 1249 00:51:35,920 --> 00:51:37,920 estructuras... 1250 00:51:37,920 --> 00:51:39,920 Aquí tiene que estar... 1251 00:51:39,920 --> 00:51:41,920 Aquí tenéis donde explica el i o el o, 1252 00:51:41,920 --> 00:51:43,920 para que se ejecute solo una 1253 00:51:43,920 --> 00:51:45,920 de las dos condiciones. 1254 00:51:45,920 --> 00:51:47,920 Pero también tiene que haber 1255 00:51:47,920 --> 00:51:49,920 en algún momento que os hable de las... 1256 00:51:49,920 --> 00:51:51,920 Bueno, aquí os dice que se usa para asignar 1257 00:51:51,920 --> 00:51:53,920 una variable un solo igual. Aquí tenéis 1258 00:51:53,920 --> 00:51:55,920 explicado esto también. Y aquí tenéis 1259 00:51:55,920 --> 00:51:57,920 lo del inverso, el diferente, 1260 00:51:57,920 --> 00:51:59,920 que para eso se usa 1261 00:51:59,920 --> 00:52:01,920 la exclamación. 1262 00:52:01,920 --> 00:52:03,920 Entonces, cuando ponemos un 1263 00:52:03,920 --> 00:52:05,920 exclamación igual, significa 1264 00:52:05,920 --> 00:52:07,920 que es diferente de. Si tenemos 1265 00:52:07,920 --> 00:52:09,920 igual, es igual. 1266 00:52:09,920 --> 00:52:11,920 Básicamente, si ponemos esto, es 1267 00:52:11,920 --> 00:52:13,920 si pulsamos la tecla espaciadora 1268 00:52:13,920 --> 00:52:15,920 y abarte vivo es diferente a true, 1269 00:52:15,920 --> 00:52:17,920 que como es una booleana solo admite dos valores, 1270 00:52:17,920 --> 00:52:19,920 si vivo es 1271 00:52:19,920 --> 00:52:21,920 falso, se ejecuta esto. 1272 00:52:21,920 --> 00:52:23,920 Ahora mismo, básicamente 1273 00:52:23,920 --> 00:52:25,920 lo que conseguiría es que 1274 00:52:25,920 --> 00:52:27,920 como no se está cumpliendo la condición, 1275 00:52:27,920 --> 00:52:29,920 yo voy al juego y por mucho que ahora le dé 1276 00:52:29,920 --> 00:52:31,920 a la barra espaciadora, 1277 00:52:31,920 --> 00:52:33,920 yo le empiezo a dar y no se cumple, 1278 00:52:33,920 --> 00:52:35,920 porque está vivo 1279 00:52:35,920 --> 00:52:37,920 y como la condición tiene que cumplirse, 1280 00:52:37,920 --> 00:52:39,920 si no está vivo, si no es 1281 00:52:39,920 --> 00:52:41,920 verdadero, pues esto 1282 00:52:41,920 --> 00:52:43,920 no se va a ejecutar nunca. 1283 00:52:43,920 --> 00:52:45,920 Que ojo 1284 00:52:45,920 --> 00:52:47,920 a los comparadores. 1285 00:52:47,920 --> 00:52:49,920 Ahora vamos 1286 00:52:49,920 --> 00:52:51,920 a ver también que como comparadores 1287 00:52:51,920 --> 00:52:53,920 están el igual y luego están 1288 00:52:53,920 --> 00:52:55,920 el menor igual, 1289 00:52:55,920 --> 00:52:57,920 el mayor igual, etc. 1290 00:52:57,920 --> 00:52:59,920 Eso lo tenéis explicado por aquí. 1291 00:52:59,920 --> 00:53:01,920 Se puede poner que algo sea 1292 00:53:01,920 --> 00:53:03,920 menor o mayor o menor e igual. 1293 00:53:03,920 --> 00:53:05,920 Eso lo vamos a ver ahora 1294 00:53:05,920 --> 00:53:07,920 en otro contexto. 1295 00:53:07,920 --> 00:53:09,920 ¿Hasta aquí qué tal? 1296 00:53:13,920 --> 00:53:15,920 Lo que os decía, 1297 00:53:15,920 --> 00:53:17,920 y esto voy a ir rápido porque 1298 00:53:17,920 --> 00:53:19,920 ya lo veremos más adelante, pero a nivel 1299 00:53:21,920 --> 00:53:23,920 está bien, cuando queramos 1300 00:53:23,920 --> 00:53:25,920 generar valores aleatorios 1301 00:53:25,920 --> 00:53:27,920 hay una 1302 00:53:27,920 --> 00:53:29,920 clase que es random, de aleatorio, 1303 00:53:29,920 --> 00:53:31,920 y dentro de la clase random 1304 00:53:31,920 --> 00:53:33,920 tenemos todas 1305 00:53:33,920 --> 00:53:35,920 estos métodos. 1306 00:53:35,920 --> 00:53:37,920 Hay uno que es random 1307 00:53:37,920 --> 00:53:39,920 dentro de un rango de números. 1308 00:53:39,920 --> 00:53:41,920 Si me pongo aquí, devuelve un 1309 00:53:41,920 --> 00:53:43,920 float, un número 1310 00:53:43,920 --> 00:53:45,920 con decimales, 1311 00:53:45,920 --> 00:53:47,920 aleatorio, dentro de 1312 00:53:47,920 --> 00:53:49,920 un rango. Yo quiero que 1313 00:53:49,920 --> 00:53:51,920 el impacto 1314 00:53:51,920 --> 00:53:53,920 pueda estar entre, 1315 00:53:53,920 --> 00:53:55,920 aquí igual que hacíamos en el Instantiate, 1316 00:53:55,920 --> 00:53:57,920 básicamente cuando declaramos 1317 00:53:57,920 --> 00:53:59,920 otra vez, me resulta muy 1318 00:53:59,920 --> 00:54:01,920 importante que vayáis intentando 1319 00:54:01,920 --> 00:54:03,920 entender qué pone. Fijaos en lo 1320 00:54:03,920 --> 00:54:05,920 que pone aquí la sobrecarga, que es 1321 00:54:05,920 --> 00:54:07,920 dentro se pone el mínimo, incluido 1322 00:54:07,920 --> 00:54:09,920 ese dentro del rango, y el máximo del rango. 1323 00:54:09,920 --> 00:54:11,920 Yo lo que pongo aquí 1324 00:54:11,920 --> 00:54:13,920 básicamente es que cuando 1325 00:54:13,920 --> 00:54:15,920 yo ejecute este método, 1326 00:54:15,920 --> 00:54:17,920 voy a hacer que 1327 00:54:17,920 --> 00:54:19,920 cada vez que se pulse la tecla espaciadora 1328 00:54:19,920 --> 00:54:21,920 en el valor impacto se va a guardar 1329 00:54:21,920 --> 00:54:23,920 una cifra que 1330 00:54:23,920 --> 00:54:25,920 esté entre 0 y 40, 1331 00:54:25,920 --> 00:54:27,920 por ejemplo. A veces valdrá 1332 00:54:27,920 --> 00:54:29,920 0, a veces valdrá 30, a veces valdrá 1333 00:54:29,920 --> 00:54:31,920 10, y cada vez valdrá una cosa. 1334 00:54:31,920 --> 00:54:33,920 Y según lo que guarde aquí, como 1335 00:54:33,920 --> 00:54:35,920 está ejecutándose y se ha guardado en impacto, 1336 00:54:35,920 --> 00:54:37,920 lo que resta del escudo va a ser 1337 00:54:37,920 --> 00:54:39,920 diferente. Guardo 1338 00:54:39,920 --> 00:54:41,920 y ejecuto. Y vais a ver ahora que el mensaje 1339 00:54:41,920 --> 00:54:43,920 se va 1340 00:54:43,920 --> 00:54:45,920 a 1341 00:54:45,920 --> 00:54:47,920 ir mostrando 1342 00:54:47,920 --> 00:54:49,920 y la resta de energía va a ir variando. 1343 00:54:49,920 --> 00:54:51,920 96 de escudo, 78, 1344 00:54:51,920 --> 00:54:53,920 43, porque cada vez está restando 1345 00:54:53,920 --> 00:54:55,920 un valor distinto. 1346 00:54:57,920 --> 00:54:59,920 Algo importante, por ejemplo, en la tarea 1347 00:54:59,920 --> 00:55:01,920 2, que tenéis que ir generando obstáculos 1348 00:55:01,920 --> 00:55:03,920 en el eje X, pero no queréis 1349 00:55:03,920 --> 00:55:05,920 que esos obstáculos vayan apareciendo todo el rato 1350 00:55:05,920 --> 00:55:07,920 en el mismo punto, entonces tendréis que ir 1351 00:55:07,920 --> 00:55:09,920 aleatorizando las cifras. 1352 00:55:09,920 --> 00:55:11,920 Pues el Random Rate 1353 00:55:11,920 --> 00:55:13,920 es un gran 1354 00:55:13,920 --> 00:55:15,920 método para conseguir esto. 1355 00:55:15,920 --> 00:55:17,920 Lo primero, voy a poner aquí 1356 00:55:17,920 --> 00:55:19,920 un espacio para que no aparezca lo de antes 1357 00:55:19,920 --> 00:55:21,920 y guardo. Ahora ya tenemos 1358 00:55:21,920 --> 00:55:23,920 conseguido que si 1359 00:55:29,920 --> 00:55:31,920 la nave va siendo golpeada, pues 1360 00:55:31,920 --> 00:55:33,920 un mensaje nos va diciendo cuánto va quedando 1361 00:55:33,920 --> 00:55:35,920 de escudo. 1362 00:55:35,920 --> 00:55:37,920 Hasta aquí más o menos me vais siguiendo. 1363 00:55:41,920 --> 00:55:43,920 ¿Qué vamos a hacer ahora? 1364 00:55:43,920 --> 00:55:45,920 En el Update, aparte de 1365 00:55:45,920 --> 00:55:47,920 darnos la 1366 00:55:47,920 --> 00:55:49,920 posibilidad de pulsar la tecla espaciadora y que haya 1367 00:55:49,920 --> 00:55:51,920 impacto, lo que vamos a ir haciendo es 1368 00:55:51,920 --> 00:55:53,920 poner condiciones 1369 00:55:53,920 --> 00:55:55,920 que terminen 1370 00:55:55,920 --> 00:55:57,920 si se van sumando, restando vidas. 1371 00:55:57,920 --> 00:55:59,920 Ahora mismo seguimos 1372 00:55:59,920 --> 00:56:01,920 restando escudo, se vuelve a valores 1373 00:56:01,920 --> 00:56:03,920 negativos y así podemos estar hasta 1374 00:56:03,920 --> 00:56:05,920 el infinito. Habrá que decir en algún momento 1375 00:56:07,920 --> 00:56:09,920 que si llega a 0 o menos 1376 00:56:09,920 --> 00:56:11,920 pues restes una vida. 1377 00:56:11,920 --> 00:56:13,920 Para eso, 1378 00:56:13,920 --> 00:56:15,920 vamos a hacer otra condición. 1379 00:56:15,920 --> 00:56:17,920 Esto es igual, se pueden meter condiciones 1380 00:56:17,920 --> 00:56:19,920 dentro de condiciones. Yo aquí podría poner 1381 00:56:19,920 --> 00:56:21,920 un if de si se ejecuta 1382 00:56:21,920 --> 00:56:23,920 esto, aparte, si también se ejecuta 1383 00:56:23,920 --> 00:56:25,920 otra cosa, pues seguirá reproduciéndose. 1384 00:56:25,920 --> 00:56:27,920 Aquí, si lo voy poniendo 1385 00:56:27,920 --> 00:56:29,920 a niveles 1386 00:56:29,920 --> 00:56:31,920 análogos, es decir, que no está ninguna dentro 1387 00:56:31,920 --> 00:56:33,920 de otra, primero comprueba que esta se cumpla 1388 00:56:33,920 --> 00:56:35,920 en el fotograma. ¿Se cumple? Sí. 1389 00:56:35,920 --> 00:56:37,920 Ejecútalo aquí. ¿Que no? 1390 00:56:37,920 --> 00:56:39,920 Paso a lo siguiente. Si lo siguiente es un if otra 1391 00:56:39,920 --> 00:56:41,920 vez, 1392 00:56:41,920 --> 00:56:43,920 pues volveré a 1393 00:56:43,920 --> 00:56:45,920 ejecutarlo, que esté entre las llaves. 1394 00:56:45,920 --> 00:56:47,920 Y aquí vamos a decir que 1395 00:56:47,920 --> 00:56:49,920 si el impacto 1396 00:56:49,920 --> 00:56:51,920 es 1397 00:56:51,920 --> 00:56:53,920 y ahora vais a ver que da un problema, 1398 00:56:53,920 --> 00:56:55,920 mayor 1399 00:56:55,920 --> 00:56:57,920 o igual 1400 00:56:57,920 --> 00:56:59,920 a el escudo 1401 00:56:59,920 --> 00:57:01,920 que queda, pues 1402 00:57:01,920 --> 00:57:03,920 lo pongo así, pero bueno, 1403 00:57:03,920 --> 00:57:05,920 se le resta una vida. 1404 00:57:05,920 --> 00:57:07,920 Porque básicamente, si el impacto 1405 00:57:07,920 --> 00:57:09,920 es una cantidad 1406 00:57:09,920 --> 00:57:11,920 mayor que lo que queda de escudo, 1407 00:57:11,920 --> 00:57:13,920 nos hemos cargado a la nave, por tanto 1408 00:57:13,920 --> 00:57:15,920 tenemos una vida. 1409 00:57:15,920 --> 00:57:17,920 ¿Por qué 1410 00:57:17,920 --> 00:57:19,920 puede dar esto 1411 00:57:19,920 --> 00:57:21,920 problemas o no? 1412 00:57:21,920 --> 00:57:23,920 ¿Qué está pasando aquí? 1413 00:57:23,920 --> 00:57:25,920 Básicamente, lo que estamos haciendo es 1414 00:57:25,920 --> 00:57:27,920 que se está ejecutando esto 1415 00:57:27,920 --> 00:57:29,920 e impacto se está 1416 00:57:29,920 --> 00:57:31,920 digamos 1417 00:57:31,920 --> 00:57:33,920 calculando 1418 00:57:33,920 --> 00:57:35,920 dentro de cuando pulsemos la tecla. 1419 00:57:35,920 --> 00:57:37,920 Entonces, si cada fotograma 1420 00:57:37,920 --> 00:57:39,920 está comprobando que impacto 1421 00:57:39,920 --> 00:57:41,920 sea mayor o menor que escudo, 1422 00:57:41,920 --> 00:57:43,920 al final lo que va a ir haciendo es 1423 00:57:43,920 --> 00:57:45,920 comprobando si en cada momento 1424 00:57:45,920 --> 00:57:47,920 impacto tiene 1425 00:57:47,920 --> 00:57:49,920 mayor que escudo. 1426 00:57:49,920 --> 00:57:51,920 Entonces, nosotros esto no queremos que 1427 00:57:51,920 --> 00:57:53,920 esté evaluándolo continuamente. 1428 00:57:53,920 --> 00:57:55,920 Queremos que la operación de sumar o restar vida 1429 00:57:55,920 --> 00:57:57,920 nuevamente se dé una vez 1430 00:57:57,920 --> 00:57:59,920 se ha dado esta condición. Por tanto, 1431 00:57:59,920 --> 00:58:01,920 si al pulsar esta tecla 1432 00:58:01,920 --> 00:58:03,920 se ejecuta esto 1433 00:58:03,920 --> 00:58:05,920 y, oye, que impacto es mayor 1434 00:58:05,920 --> 00:58:07,920 que escudo, pues entonces le restamos una vida. 1435 00:58:07,920 --> 00:58:09,920 Si no, da igual, porque no voy a estar todo el rato 1436 00:58:09,920 --> 00:58:11,920 restando vida. 1437 00:58:11,920 --> 00:58:13,920 Entonces, lo meto todo para que esté dentro 1438 00:58:13,920 --> 00:58:15,920 de este mismo IF. 1439 00:58:15,920 --> 00:58:17,920 Y recordad del otro día que dijimos 1440 00:58:17,920 --> 00:58:19,920 si impacto es mayor o igual a escudo, 1441 00:58:19,920 --> 00:58:21,920 pues de las vidas que tengo, 1442 00:58:21,920 --> 00:58:23,920 que tengo 3, vida en nave 3, 1443 00:58:23,920 --> 00:58:25,920 pues yo le voy a restar 1. 1444 00:58:25,920 --> 00:58:27,920 Y esto el otro día igual, vimos varias formas 1445 00:58:27,920 --> 00:58:29,920 de hacerlo. A ver, lo tabulo 1446 00:58:29,920 --> 00:58:31,920 para que se vea mejor. Tabular 1447 00:58:31,920 --> 00:58:33,920 sirve para ir marcando 1448 00:58:33,920 --> 00:58:35,920 con la tecla tabulador. A veces 1449 00:58:35,920 --> 00:58:37,920 lo hace de manera automática, incluso hay 1450 00:58:37,920 --> 00:58:39,920 casos de que lo tabule todo automáticamente, 1451 00:58:39,920 --> 00:58:41,920 pero bueno, con la tecla tabulador podemos ir 1452 00:58:41,920 --> 00:58:43,920 dando tabulaciones. Lo suyo es 1453 00:58:43,920 --> 00:58:45,920 a medida que vamos metiéndonos 1454 00:58:45,920 --> 00:58:47,920 dentro de bloques, 1455 00:58:47,920 --> 00:58:49,920 vayamos tabulando para que visualmente 1456 00:58:49,920 --> 00:58:51,920 veamos a nivel 1457 00:58:51,920 --> 00:58:53,920 vertical qué está 1458 00:58:53,920 --> 00:58:55,920 dentro de qué, porque si no esto 1459 00:58:55,920 --> 00:58:57,920 se va convirtiendo en muy confuso. 1460 00:58:57,920 --> 00:58:59,920 Aquí, si cuando hemos generado 1461 00:58:59,920 --> 00:59:01,920 este impacto y se resta de escudo, 1462 00:59:01,920 --> 00:59:03,920 si el impacto que tenemos 1463 00:59:03,920 --> 00:59:05,920 aquí generado ha sido mayor 1464 00:59:05,920 --> 00:59:07,920 que el escudo que queda, 1465 00:59:07,920 --> 00:59:09,920 pues entonces 1466 00:59:09,920 --> 00:59:11,920 la vida de la nave tiene que ser igual 1467 00:59:11,920 --> 00:59:13,920 a vidas nave 1468 00:59:13,920 --> 00:59:15,920 menos 1469 00:59:15,920 --> 00:59:17,920 una. 1470 00:59:17,920 --> 00:59:19,920 Pasaría a 1471 00:59:19,920 --> 00:59:21,920 valer una menos de las que tiene. 1472 00:59:21,920 --> 00:59:23,920 Recordad que el otro día os dije 1473 00:59:23,920 --> 00:59:25,920 que esto mismo que aquí se puede 1474 00:59:25,920 --> 00:59:27,920 escribir, esto mismo se puede 1475 00:59:27,920 --> 00:59:29,920 escribir, lo comento, 1476 00:59:29,920 --> 00:59:31,920 vidas nave 1477 00:59:31,920 --> 00:59:33,920 menos igual 1478 00:59:33,920 --> 00:59:35,920 uno 1479 00:59:35,920 --> 00:59:37,920 en este caso. 1480 00:59:37,920 --> 00:59:39,920 Aquí podría poner otra variable 1481 00:59:39,920 --> 00:59:41,920 si fuera otra. 1482 00:59:41,920 --> 00:59:43,920 En el fondo es lo mismo que aquí 1483 00:59:43,920 --> 00:59:45,920 podríamos hacerlo. Lo estoy poniendo 1484 00:59:45,920 --> 00:59:47,920 en este ejemplo, 1485 00:59:47,920 --> 00:59:49,920 pero aquí también podríamos, por ejemplo, 1486 00:59:49,920 --> 00:59:51,920 resumirlo para que sea 1487 00:59:51,920 --> 00:59:53,920 más directo como esto. 1488 00:59:53,920 --> 00:59:55,920 Son exactamente lo mismo. 1489 00:59:55,920 --> 00:59:57,920 Y luego 1490 00:59:57,920 --> 00:59:59,920 cuando va de uno en uno, también 1491 00:59:59,920 --> 01:00:01,920 esto es igual, que en este 1492 01:00:01,920 --> 01:00:03,920 caso no tiene sentido, pero aquí sí, también puede ser 1493 01:00:03,920 --> 01:00:05,920 igual que escribir, 1494 01:00:05,920 --> 01:00:07,920 lo comento para que no se ejecute, 1495 01:00:07,920 --> 01:00:09,920 que poner vidas 1496 01:00:09,920 --> 01:00:11,920 nave menos menos. 1497 01:00:11,920 --> 01:00:13,920 Por eso el menos menos y el más más 1498 01:00:13,920 --> 01:00:15,920 se usan mucho porque 1499 01:00:15,920 --> 01:00:17,920 cuando son operaciones 1500 01:00:17,920 --> 01:00:19,920 de sumo uno bajo uno, por ejemplo, 1501 01:00:19,920 --> 01:00:21,920 la vida se va de una en una normalmente, 1502 01:00:21,920 --> 01:00:23,920 pues existen estos operadores. 1503 01:00:23,920 --> 01:00:25,920 Si el impacto es mayor que lo que quedaba de escudo 1504 01:00:25,920 --> 01:00:27,920 en este momento que se ha ejecutado, 1505 01:00:27,920 --> 01:00:29,920 pues se restará una vida. 1506 01:00:29,920 --> 01:00:31,920 Si se olvida nave, pasaría a valer dos. 1507 01:00:31,920 --> 01:00:33,920 Es decir, 1508 01:00:33,920 --> 01:00:35,920 vamos a hacerlo de una forma 1509 01:00:35,920 --> 01:00:37,920 más rápida. 1510 01:00:37,920 --> 01:00:39,920 Aquí voy a mostrar 1511 01:00:39,920 --> 01:00:41,920 en consola, nuevamente para que se vaya 1512 01:00:41,920 --> 01:00:43,920 viendo todo lo que vamos haciendo, 1513 01:00:43,920 --> 01:00:45,920 que cuánto vale 1514 01:00:45,920 --> 01:00:47,920 me quedan 1515 01:00:51,920 --> 01:00:53,920 con cateno 1516 01:00:53,920 --> 01:00:55,920 el número de vidas que le queda a nave. 1517 01:00:55,920 --> 01:00:57,920 Vale, me quedan 1518 01:00:57,920 --> 01:00:59,920 no sé cuántas vidas. 1519 01:00:59,920 --> 01:01:01,920 Esto ya entiendo que vais 1520 01:01:01,920 --> 01:01:03,920 entendiendo la concatenación de textos. 1521 01:01:03,920 --> 01:01:05,920 ¿Esto qué significa? 1522 01:01:05,920 --> 01:01:07,920 De nuevo, sólo se va a ejecutar 1523 01:01:07,920 --> 01:01:09,920 cuando 1524 01:01:09,920 --> 01:01:11,920 impacto, cuando el daño 1525 01:01:11,920 --> 01:01:13,920 que hace el meteorito 1526 01:01:13,920 --> 01:01:15,920 sea mayor que el escudo. 1527 01:01:15,920 --> 01:01:17,920 Si no, no se va a mostrar este mensaje. 1528 01:01:17,920 --> 01:01:19,920 Es decir, primero tenemos que dar a la barra espaciadora 1529 01:01:19,920 --> 01:01:21,920 para que se dé el impacto 1530 01:01:21,920 --> 01:01:23,920 y aparte que compruebe si el impacto es mayor 1531 01:01:23,920 --> 01:01:25,920 que el escudo. Nuevamente, 1532 01:01:25,920 --> 01:01:27,920 no es lo mismo tener un if dentro 1533 01:01:27,920 --> 01:01:29,920 de otro que dejarlo fuera 1534 01:01:29,920 --> 01:01:31,920 de otro. 1535 01:01:31,920 --> 01:01:33,920 Vamos a ver un poco 1536 01:01:33,920 --> 01:01:35,920 cómo se desarrolla esto. 1537 01:01:35,920 --> 01:01:37,920 Le doy a la barra espaciadora. 1538 01:01:37,920 --> 01:01:39,920 A ver... 1539 01:01:39,920 --> 01:01:41,920 Creo que no ha guardado. 1540 01:01:41,920 --> 01:01:43,920 Ahí está. 1541 01:01:43,920 --> 01:01:45,920 Escudo menos impacto. 1542 01:01:45,920 --> 01:01:47,920 Sí, está bien. 1543 01:01:47,920 --> 01:01:49,920 Si no me equivoco... 1544 01:01:49,920 --> 01:01:51,920 Voy aquí. 1545 01:01:51,920 --> 01:01:53,920 Estoy aquí. 1546 01:01:53,920 --> 01:01:55,920 Le doy a la barra espaciadora. 1547 01:01:55,920 --> 01:01:57,920 Y ojo que no se está ejecutando. 1548 01:01:57,920 --> 01:01:59,920 Hay que ver el por qué. 1549 01:01:59,920 --> 01:02:01,920 Vale. 1550 01:02:03,920 --> 01:02:05,920 ¿Por qué 1551 01:02:05,920 --> 01:02:07,920 se provoca? Estoy vivo. 1552 01:02:07,920 --> 01:02:09,920 Estoy vivo. 1553 01:02:09,920 --> 01:02:11,920 En teoría, 1554 01:02:11,920 --> 01:02:13,920 debería ir. 1555 01:02:13,920 --> 01:02:15,920 Ta, ta, 1556 01:02:15,920 --> 01:02:17,920 y ta. 1557 01:02:17,920 --> 01:02:19,920 Sí. 1558 01:02:19,920 --> 01:02:21,920 Por eso es la barra espaciadora. 1559 01:02:21,920 --> 01:02:23,920 Estoy vivo, que empieza estando vivo. 1560 01:02:23,920 --> 01:02:25,920 El impacto se genera aquí. 1561 01:02:25,920 --> 01:02:27,920 Y escudo 1562 01:02:27,920 --> 01:02:29,920 menos impacto. 1563 01:02:29,920 --> 01:02:31,920 La nave tiene tal. 1564 01:02:31,920 --> 01:02:33,920 ¿Y por qué 1565 01:02:33,920 --> 01:02:35,920 no se está viendo? 1566 01:02:35,920 --> 01:02:37,920 Estas cosas a veces pasan 1567 01:02:37,920 --> 01:02:39,920 y hay que 1568 01:02:39,920 --> 01:02:41,920 ver cómo resolverlas. 1569 01:02:41,920 --> 01:02:43,920 ¿Está asignado el script? Sí. 1570 01:02:43,920 --> 01:02:45,920 Pues a ver... 1571 01:02:45,920 --> 01:02:47,920 Vale. Cuando pasan 1572 01:02:47,920 --> 01:02:49,920 estas cosas... 1573 01:02:49,920 --> 01:02:51,920 Bueno, no sé si lo parece o no, 1574 01:02:51,920 --> 01:02:53,920 pero parece que estoy haciendo algo y no me sale 1575 01:02:53,920 --> 01:02:55,920 porque hasta que no compruebo... 1576 01:02:55,920 --> 01:02:57,920 Ojo, que si estáis haciendo operaciones 1577 01:02:57,920 --> 01:02:59,920 y no funciona, a veces es porque 1578 01:02:59,920 --> 01:03:01,920 tenéis seleccionada la ventana de escena. 1579 01:03:01,920 --> 01:03:03,920 Para que todo se ejecute, pinchar 1580 01:03:03,920 --> 01:03:05,920 en la de Game, porque si no, no se ejecuta. 1581 01:03:05,920 --> 01:03:07,920 Ahora, cada vez que le voy dando, se va restando. 1582 01:03:07,920 --> 01:03:09,920 ¿Veis que solo pone el mensaje 1583 01:03:09,920 --> 01:03:11,920 que la nave tiene tanto escudo y todavía no ha puesto 1584 01:03:11,920 --> 01:03:13,920 nada de me quedan no sé cuántas vidas? 1585 01:03:13,920 --> 01:03:15,920 Sigo jugando. Cuando llegue 1586 01:03:15,920 --> 01:03:17,920 a cero o menos, 1587 01:03:17,920 --> 01:03:19,920 tiene 22 de escudo. 1588 01:03:19,920 --> 01:03:21,920 Y ahora me pone 1589 01:03:21,920 --> 01:03:23,920 me quedan dos vidas. Primero, aquí hay 1590 01:03:23,920 --> 01:03:25,920 un espacio que no he puesto. 1591 01:03:25,920 --> 01:03:27,920 Y hay un error de concepto 1592 01:03:27,920 --> 01:03:29,920 también, que es si el impacto 1593 01:03:29,920 --> 01:03:31,920 es mayor que el escudo, 1594 01:03:31,920 --> 01:03:33,920 me ponga eso. Pero el problema está en que 1595 01:03:33,920 --> 01:03:35,920 el impacto 1596 01:03:35,920 --> 01:03:37,920 se ha restado del escudo en este momento, 1597 01:03:37,920 --> 01:03:39,920 pero a veces no tiene por qué 1598 01:03:39,920 --> 01:03:41,920 haber matado a la nave. 1599 01:03:41,920 --> 01:03:43,920 Entonces, 1600 01:03:43,920 --> 01:03:45,920 igual que tengo que hacer esto, 1601 01:03:49,920 --> 01:03:51,920 vuelvo a ejecutar porque 1602 01:03:51,920 --> 01:03:53,920 el problema que tenemos aquí, 1603 01:03:53,920 --> 01:03:55,920 empieza a dar 1604 01:03:55,920 --> 01:03:57,920 plus, plus, plus, 1605 01:03:57,920 --> 01:03:59,920 26. 1606 01:03:59,920 --> 01:04:01,920 Y cuando tiene 1607 01:04:01,920 --> 01:04:03,920 más cantidad 1608 01:04:03,920 --> 01:04:05,920 que la que tiene, es que está mal formulado 1609 01:04:05,920 --> 01:04:07,920 esto, porque en realidad, pensadlo, 1610 01:04:07,920 --> 01:04:09,920 que el impacto 1611 01:04:09,920 --> 01:04:11,920 tiene que ser mayor que la 1612 01:04:11,920 --> 01:04:13,920 energía. Pero es que, 1613 01:04:13,920 --> 01:04:15,920 si aquí es 1614 01:04:15,920 --> 01:04:17,920 38 y de 1615 01:04:17,920 --> 01:04:19,920 escudo tenía 36, 1616 01:04:21,920 --> 01:04:23,920 pues aquí se queda con 36, 1617 01:04:23,920 --> 01:04:25,920 pero entonces no nos está enseñando 1618 01:04:25,920 --> 01:04:27,920 esto. Por tanto, ¿qué significa esto? 1619 01:04:27,920 --> 01:04:29,920 Que el impacto, 1620 01:04:29,920 --> 01:04:31,920 esto que estamos poniendo aquí, 1621 01:04:31,920 --> 01:04:33,920 si el impacto es mayor 1622 01:04:33,920 --> 01:04:35,920 que el escudo, 1623 01:04:35,920 --> 01:04:37,920 lo ponemos aquí. 1624 01:04:37,920 --> 01:04:39,920 Si el impacto es mayor 1625 01:04:39,920 --> 01:04:41,920 de lo que queda de escudo, 1626 01:04:41,920 --> 01:04:43,920 pues ya estoy muriendo 1627 01:04:43,920 --> 01:04:45,920 y me restas una vida. 1628 01:04:45,920 --> 01:04:47,920 Y entonces, luego al escudo le restamos 1629 01:04:47,920 --> 01:04:49,920 lo que hay que hacer. Es decir, ya en ese 1630 01:04:49,920 --> 01:04:51,920 momento ya nos va a dar igual lo que ponga en el escudo 1631 01:04:51,920 --> 01:04:53,920 porque básicamente nos hemos cargado una vida. 1632 01:04:53,920 --> 01:04:55,920 Entonces, 1633 01:04:55,920 --> 01:04:57,920 si el impacto es mayor que el escudo, 1634 01:04:57,920 --> 01:04:59,920 me restas una vida y me dices 1635 01:04:59,920 --> 01:05:01,920 que esto, que ya estoy muerto 1636 01:05:01,920 --> 01:05:03,920 y me ha quitado una nave. 1637 01:05:03,920 --> 01:05:05,920 Y si no, 1638 01:05:05,920 --> 01:05:07,920 y ahora vemos esto, si no, si 1639 01:05:07,920 --> 01:05:09,920 escudo 1640 01:05:09,920 --> 01:05:11,920 es 1641 01:05:11,920 --> 01:05:13,920 mayor, si impacto 1642 01:05:13,920 --> 01:05:15,920 es menor 1643 01:05:15,920 --> 01:05:17,920 o igual, 1644 01:05:17,920 --> 01:05:19,920 estoy poniendo al revés, 1645 01:05:19,920 --> 01:05:21,920 menor o igual que escudo, 1646 01:05:21,920 --> 01:05:23,920 pues simplemente 1647 01:05:23,920 --> 01:05:25,920 lo que va a hacer es 1648 01:05:25,920 --> 01:05:27,920 enseñarnos esto que tenemos 1649 01:05:27,920 --> 01:05:29,920 aquí. 1650 01:05:29,920 --> 01:05:31,920 A ver. 1651 01:05:31,920 --> 01:05:33,920 No sé si estáis entendiendo lo que estoy haciendo. 1652 01:05:33,920 --> 01:05:35,920 Y aparte, aquí hay una 1653 01:05:35,920 --> 01:05:37,920 incoherencia que ahora vemos, que es que 1654 01:05:37,920 --> 01:05:39,920 aquí ponemos impacto es igual que escudo 1655 01:05:39,920 --> 01:05:41,920 e impacto es igual que escudo. 1656 01:05:41,920 --> 01:05:43,920 Uno de los dos no puede tener ese igual. 1657 01:05:43,920 --> 01:05:45,920 A ver. 1658 01:05:45,920 --> 01:05:47,920 Hasta aquí, ¿qué tal me vais 1659 01:05:47,920 --> 01:05:49,920 siguiendo? Ahora vemos el resultado. 1660 01:05:49,920 --> 01:05:51,920 Pero vamos a analizar 1661 01:05:51,920 --> 01:05:53,920 ahora mismo qué es lo que estamos haciendo. 1662 01:05:53,920 --> 01:05:55,920 A ver, espera que 1663 01:05:55,920 --> 01:05:57,920 tengo que meterme aquí para leeros 1664 01:05:57,920 --> 01:05:59,920 si no me habláis. Un poco confuso. 1665 01:05:59,920 --> 01:06:01,920 Sí. 1666 01:06:01,920 --> 01:06:03,920 Vamos a ello. Vamos a verlo. 1667 01:06:03,920 --> 01:06:05,920 Para llegar a estas cosas a veces hay que dar vueltas, ¿vale? 1668 01:06:05,920 --> 01:06:07,920 No es directo. Entonces esto también me sirve 1669 01:06:07,920 --> 01:06:09,920 para verlo. Lo que estamos haciendo 1670 01:06:09,920 --> 01:06:11,920 aquí es asignamos, 1671 01:06:11,920 --> 01:06:13,920 arrancamos el juego, tiene tanta 1672 01:06:13,920 --> 01:06:15,920 energía, está todo para empezar 1673 01:06:15,920 --> 01:06:17,920 a jugar. Cada fotograma está comprobando 1674 01:06:17,920 --> 01:06:19,920 si damos a la barra espaciadora 1675 01:06:19,920 --> 01:06:21,920 y si estamos vivos. 1676 01:06:21,920 --> 01:06:23,920 Que por defecto, hasta que no digamos 1677 01:06:23,920 --> 01:06:25,920 lo contrario, le estamos diciendo que es verdadero. 1678 01:06:25,920 --> 01:06:27,920 Se cumple la función. 1679 01:06:27,920 --> 01:06:29,920 Y según le hemos dado a esta 1680 01:06:29,920 --> 01:06:31,920 en ese momento, sólo una vez, 1681 01:06:31,920 --> 01:06:33,920 porque es cuando pulsamos la tecla down, 1682 01:06:33,920 --> 01:06:35,920 impacto calcula que vale 1683 01:06:35,920 --> 01:06:37,920 una cifra. 1684 01:06:37,920 --> 01:06:39,920 Entonces, a partir de aquí, 1685 01:06:39,920 --> 01:06:41,920 hay que hacer dos comprobaciones. 1686 01:06:41,920 --> 01:06:43,920 Si ese impacto que se ha generado 1687 01:06:43,920 --> 01:06:45,920 es mayor o igual que el escudo, 1688 01:06:45,920 --> 01:06:47,920 yo no quiero que me demuestre 1689 01:06:47,920 --> 01:06:49,920 cuánto escudo queda, 1690 01:06:49,920 --> 01:06:51,920 porque no va a ser 1691 01:06:51,920 --> 01:06:53,920 positivo, 1692 01:06:53,920 --> 01:06:55,920 va a ser negativo. 1693 01:06:55,920 --> 01:06:57,920 Es decir, si queda 1694 01:06:57,920 --> 01:06:59,920 20 de escudo y el impacto es 38, 1695 01:06:59,920 --> 01:07:01,920 no quiero que me ponga menos 12, 1696 01:07:01,920 --> 01:07:03,920 quiero que directamente me reste una vida 1697 01:07:03,920 --> 01:07:05,920 y me diga, oye, 1698 01:07:05,920 --> 01:07:07,920 te han quitado una vida. 1699 01:07:07,920 --> 01:07:09,920 Te han quitado una vida. 1700 01:07:09,920 --> 01:07:11,920 Te quedan 1701 01:07:11,920 --> 01:07:13,920 y aquí, digamos que 1702 01:07:13,920 --> 01:07:15,920 te resta una vida y te demuestra. 1703 01:07:15,920 --> 01:07:17,920 Pero, claro, si eso, 1704 01:07:17,920 --> 01:07:19,920 vuelvo a decirlo, 1705 01:07:19,920 --> 01:07:21,920 no quiero que me 1706 01:07:21,920 --> 01:07:23,920 reste escudo. 1707 01:07:23,920 --> 01:07:25,920 Lo que quiero es que me quite una vida, 1708 01:07:25,920 --> 01:07:27,920 no quiero que me lo deje en menos 100. 1709 01:07:27,920 --> 01:07:29,920 Entonces, lo que estamos haciendo aquí es 1710 01:07:29,920 --> 01:07:31,920 si impacto es mayor que escudo, 1711 01:07:31,920 --> 01:07:33,920 me restas una vida y me dices cuántas vidas quedan. 1712 01:07:33,920 --> 01:07:35,920 Y además, 1713 01:07:35,920 --> 01:07:37,920 importante, habrá que decirle que el escudo 1714 01:07:37,920 --> 01:07:39,920 pase a valer 1715 01:07:39,920 --> 01:07:41,920 100 de nuevo, porque empezaremos 1716 01:07:41,920 --> 01:07:43,920 una nueva partida, y si el impacto 1717 01:07:43,920 --> 01:07:45,920 no era mayor que el escudo, es decir, 1718 01:07:45,920 --> 01:07:47,920 si el impacto es menor que el escudo, 1719 01:07:47,920 --> 01:07:49,920 lo que vamos a hacer es a escudo restarle 1720 01:07:49,920 --> 01:07:51,920 un impacto y enséñame cuánto 1721 01:07:51,920 --> 01:07:53,920 escudo tiene la nave. 1722 01:07:53,920 --> 01:07:55,920 ¿Sí? 1723 01:07:55,920 --> 01:07:57,920 Entonces, ahora mismo, 1724 01:07:57,920 --> 01:07:59,920 básicamente, lo que 1725 01:07:59,920 --> 01:08:01,920 hacemos cuando arrancamos el juego 1726 01:08:01,920 --> 01:08:03,920 es que empezamos 1727 01:08:03,920 --> 01:08:05,920 a jugar, le damos 95. 1728 01:08:05,920 --> 01:08:07,920 Bueno, 1729 01:08:07,920 --> 01:08:09,920 tened en cuenta que también puede ser 0 el valor, 1730 01:08:09,920 --> 01:08:11,920 lo hemos puesto en un rango que 0 también está. 1731 01:08:11,920 --> 01:08:13,920 Seguimos, seguimos, ahora están siendo 1732 01:08:13,920 --> 01:08:15,920 pequeñas, ¿vale? Y ahora seguramente 1733 01:08:15,920 --> 01:08:17,920 cuando le dé, me dice 1734 01:08:17,920 --> 01:08:19,920 te han quitado una vida, te quedan dos vidas, porque 1735 01:08:19,920 --> 01:08:21,920 el impacto era mayor de 10, entonces 1736 01:08:21,920 --> 01:08:23,920 pues ya, como no queremos que sea 0, 1737 01:08:23,920 --> 01:08:25,920 pues 1738 01:08:25,920 --> 01:08:27,920 nos resta una vida 1739 01:08:27,920 --> 01:08:29,920 y pasaríamos a tener dos vidas. 1740 01:08:29,920 --> 01:08:31,920 Y el juego, además, el escudo 1741 01:08:31,920 --> 01:08:33,920 vuelve a estar 100 para volver otra vez 1742 01:08:33,920 --> 01:08:35,920 a jugar al bucle. 1743 01:08:35,920 --> 01:08:37,920 ¿Sí? 1744 01:08:39,920 --> 01:08:41,920 Vale. Esto que he hecho 1745 01:08:41,920 --> 01:08:43,920 aquí, simplemente para que os suene, 1746 01:08:43,920 --> 01:08:45,920 tened en cuenta que una condición y otra 1747 01:08:45,920 --> 01:08:47,920 están vinculadas, es decir, si ésta se cumple 1748 01:08:47,920 --> 01:08:49,920 bien y si no, 1749 01:08:49,920 --> 01:08:51,920 si no, este else sirve para eso, 1750 01:08:51,920 --> 01:08:53,920 si no, si se cumple esta nueva 1751 01:08:53,920 --> 01:08:55,920 condición, vale. Esta condición 1752 01:08:55,920 --> 01:08:57,920 nunca se va a llegar a reproducir 1753 01:08:57,920 --> 01:08:59,920 si ésta sí se cumple, ¿no? 1754 01:08:59,920 --> 01:09:01,920 Pero veis que en este caso las dos son 1755 01:09:01,920 --> 01:09:03,920 complementarias, es decir, 1756 01:09:03,920 --> 01:09:05,920 puede ser mayor o igual, por eso he 1757 01:09:05,920 --> 01:09:07,920 quitado el igual en uno, porque es que si no la condición 1758 01:09:07,920 --> 01:09:09,920 en cierto modo estaba coincidiendo. 1759 01:09:09,920 --> 01:09:11,920 Si el impacto es igual a lo superior 1760 01:09:11,920 --> 01:09:13,920 se ejecuta y si no es, pues 1761 01:09:13,920 --> 01:09:15,920 lo que resta, que es la otra opción. 1762 01:09:15,920 --> 01:09:17,920 Cuando... Esto se pueden ir concatenando 1763 01:09:17,920 --> 01:09:19,920 distintos else if. Puede haber, por ejemplo, 1764 01:09:19,920 --> 01:09:21,920 si el rango de edad de una persona 1765 01:09:21,920 --> 01:09:23,920 es de 0 a 16 años, pues 1766 01:09:23,920 --> 01:09:25,920 se la califica como menor. Si es de 16 1767 01:09:25,920 --> 01:09:27,920 a... Si no, si es de 1768 01:09:27,920 --> 01:09:29,920 16 a... 1769 01:09:29,920 --> 01:09:31,920 O mejor dicho, de 17 a 25 1770 01:09:31,920 --> 01:09:33,920 es joven. Si es de 26 1771 01:09:33,920 --> 01:09:35,920 a 80 es viejo, ¿vale? Pues se 1772 01:09:35,920 --> 01:09:37,920 puede... o anciano. Se pueden ir haciendo 1773 01:09:37,920 --> 01:09:39,920 distintos rangos. Si va a ser 1774 01:09:39,920 --> 01:09:41,920 una condición en la que todo lo que 1775 01:09:41,920 --> 01:09:43,920 no sea esto, sea lo otro, 1776 01:09:43,920 --> 01:09:45,920 se puede poner simplemente sin una 1777 01:09:45,920 --> 01:09:47,920 condición así, else 1778 01:09:47,920 --> 01:09:49,920 y pone, si esto se cumple, se ejecuta 1779 01:09:49,920 --> 01:09:51,920 esto y ya está, 1780 01:09:51,920 --> 01:09:53,920 porque esto ya no... Si no, 1781 01:09:53,920 --> 01:09:55,920 no tiene sentido, es decir, 1782 01:09:55,920 --> 01:09:57,920 se está ejecutando esto y de aquí pues ya 1783 01:09:57,920 --> 01:09:59,920 pasamos, porque ya se ha cumplido 1784 01:09:59,920 --> 01:10:01,920 la primera parte. Pero si esta 1785 01:10:01,920 --> 01:10:03,920 condición no se cumple, 1786 01:10:03,920 --> 01:10:05,920 digamos aquí, pues entonces 1787 01:10:05,920 --> 01:10:07,920 repinablemente se tiene que ejecutar esta. 1788 01:10:07,920 --> 01:10:09,920 Que no es lo mismo que poner otra condición 1789 01:10:09,920 --> 01:10:11,920 como acababa de hacer aquí. 1790 01:10:11,920 --> 01:10:13,920 ¿Vale? Entonces 1791 01:10:13,920 --> 01:10:15,920 digamos que podemos ir concatenando 1792 01:10:15,920 --> 01:10:17,920 también condiciones para 1793 01:10:17,920 --> 01:10:19,920 que si no se cumple otra, 1794 01:10:19,920 --> 01:10:21,920 se cumple la siguiente. Y si no, pues se puede 1795 01:10:21,920 --> 01:10:23,920 cumplir la siguiente. Y si ninguna se cumple, 1796 01:10:23,920 --> 01:10:25,920 pues ya está, 1797 01:10:25,920 --> 01:10:27,920 doy otro valor. 1798 01:10:27,920 --> 01:10:29,920 Entonces con estos ifs podemos 1799 01:10:29,920 --> 01:10:31,920 ir, y los else ifs, 1800 01:10:31,920 --> 01:10:33,920 podemos ir condicionando un poco 1801 01:10:33,920 --> 01:10:35,920 lo que va ocurriendo en todo momento. 1802 01:10:35,920 --> 01:10:37,920 ¿Sí? ¿Me seguís? 1803 01:10:37,920 --> 01:10:39,920 Vale. 1804 01:10:39,920 --> 01:10:41,920 Entonces, 1805 01:10:41,920 --> 01:10:43,920 tenemos aquí el impacto 1806 01:10:43,920 --> 01:10:45,920 que se genera cuando le damos a la tecla 1807 01:10:45,920 --> 01:10:47,920 a la tecla 1808 01:10:49,920 --> 01:10:51,920 a la tecla 1809 01:10:51,920 --> 01:10:53,920 barra espaciadora, sí. 1810 01:10:53,920 --> 01:10:55,920 ¿Vale? Si luego 1811 01:10:55,920 --> 01:10:57,920 además dentro de esto 1812 01:10:59,920 --> 01:11:01,920 digamos que ha perdido 1813 01:11:01,920 --> 01:11:03,920 una vida, ¿vale? 1814 01:11:03,920 --> 01:11:05,920 Tenemos que decir, oye, te quedan no sé cuántas 1815 01:11:05,920 --> 01:11:07,920 vidas, pero es que, ojo, 1816 01:11:07,920 --> 01:11:09,920 si las vidas que quedan 1817 01:11:09,920 --> 01:11:11,920 son 1818 01:11:11,920 --> 01:11:13,920 a ver un segundo 1819 01:11:13,920 --> 01:11:15,920 menores o iguales a cero 1820 01:11:15,920 --> 01:11:17,920 o básicamente cero 1821 01:11:17,920 --> 01:11:19,920 porque va a ir pasando por todas, ¿vale? 1822 01:11:19,920 --> 01:11:21,920 Es decir, como va restando de una en una en este 1823 01:11:21,920 --> 01:11:23,920 momento, pues no es posible 1824 01:11:23,920 --> 01:11:25,920 que pase de uno a menos uno. Entonces si 1825 01:11:25,920 --> 01:11:27,920 vidas llegase a cero en algún momento, 1826 01:11:27,920 --> 01:11:29,920 recordad que para condicionales hay que 1827 01:11:29,920 --> 01:11:31,920 poner doble signo, ¿vale? 1828 01:11:31,920 --> 01:11:33,920 Para igual, ¿vale? Pues entonces 1829 01:11:33,920 --> 01:11:35,920 se ejecuta esta línea. 1830 01:11:35,920 --> 01:11:37,920 Ahora vemos si esto tiene sentido. 1831 01:11:37,920 --> 01:11:39,920 Que no lo va a tener, pero vamos 1832 01:11:39,920 --> 01:11:41,920 viendo un poco la lógica. 1833 01:11:41,920 --> 01:11:43,920 Si vidas, 1834 01:11:43,920 --> 01:11:45,920 perdón, no sé por qué he puesto lives, 1835 01:11:45,920 --> 01:11:47,920 si vidas nave es igual a cero, te han quitado 1836 01:11:47,920 --> 01:11:49,920 una vida. No, realmente esta frase yo 1837 01:11:49,920 --> 01:11:51,920 quiero que me la enseñe siempre que se resta la vida 1838 01:11:51,920 --> 01:11:53,920 para yo ir sabiendo cuántas vidas 1839 01:11:53,920 --> 01:11:55,920 me quedan, ¿vale? Aquí si 1840 01:11:55,920 --> 01:11:57,920 llegara a cero, ¿vale? 1841 01:11:57,920 --> 01:11:59,920 Lo que quiero es que me ponga un mensaje de, oye, 1842 01:11:59,920 --> 01:12:01,920 están muertos, vidas 1843 01:12:01,920 --> 01:12:03,920 de backlog. 1844 01:12:05,920 --> 01:12:07,920 Como dice, tiene cero 1845 01:12:07,920 --> 01:12:09,920 vidas, ha llegado ese momento, ¿tienes? 1846 01:12:09,920 --> 01:12:11,920 Incluso no hace falta ni poner 1847 01:12:11,920 --> 01:12:13,920 la referencia vida-nave, porque sabes que en este 1848 01:12:13,920 --> 01:12:15,920 caso tiene cero vidas, ¿no? 1849 01:12:15,920 --> 01:12:17,920 Tiene cero vidas, han muerto, 1850 01:12:17,920 --> 01:12:19,920 ¿vale? Y aquí he puesto una condición de 1851 01:12:19,920 --> 01:12:21,920 escudo 100, ¿no? Cuando pierdes 1852 01:12:21,920 --> 01:12:23,920 toda la vida y estás muerto, no quieres que la nave 1853 01:12:23,920 --> 01:12:25,920 digamos se resete con otra vida y otro 1854 01:12:25,920 --> 01:12:27,920 escudo. Nuevamente habría que ponerlo aquí. 1855 01:12:27,920 --> 01:12:29,920 Esto significa que este if, 1856 01:12:29,920 --> 01:12:31,920 siempre que se cumpla, siempre que muramos, 1857 01:12:31,920 --> 01:12:33,920 una vida se resta, y si 1858 01:12:33,920 --> 01:12:35,920 además esa vida es la que ya es 1859 01:12:35,920 --> 01:12:37,920 cero, pues han muerto, ¿vale? 1860 01:12:37,920 --> 01:12:39,920 Y aquí te dice, oye, que has acabado 1861 01:12:39,920 --> 01:12:41,920 de morir, ¿vale? 1862 01:12:43,920 --> 01:12:45,920 Ahí está. Si no, 1863 01:12:45,920 --> 01:12:47,920 si el impacto es menor que el escudo, 1864 01:12:47,920 --> 01:12:49,920 es decir, que no llega a matar el escudo por 1865 01:12:49,920 --> 01:12:51,920 completo, pues guardamos en la variable 1866 01:12:51,920 --> 01:12:53,920 escudo la operación de restarle 1867 01:12:53,920 --> 01:12:55,920 impacto, y vamos a ir en 1868 01:12:55,920 --> 01:12:57,920 todo momento, pues, 1869 01:12:57,920 --> 01:12:59,920 viendo cuánto queda. 1870 01:12:59,920 --> 01:13:01,920 Entonces, más o menos, 1871 01:13:01,920 --> 01:13:03,920 vamos a ir 1872 01:13:03,920 --> 01:13:05,920 viendo si el juego funciona, ¿vale? 1873 01:13:05,920 --> 01:13:07,920 Y a ver si podemos llegar a las 1874 01:13:07,920 --> 01:13:09,920 tres vidas, 1875 01:13:09,920 --> 01:13:11,920 y cuando tiene cero vidas, han muerto, 1876 01:13:11,920 --> 01:13:13,920 es que ha acabado el juego. 1877 01:13:13,920 --> 01:13:15,920 Entonces vamos a hacer un juego que está 1878 01:13:15,920 --> 01:13:17,920 todo el rato valorando 1879 01:13:17,920 --> 01:13:19,920 si estamos restando vidas o estamos 1880 01:13:19,920 --> 01:13:21,920 quitando vidas, restando vidas o 1881 01:13:21,920 --> 01:13:23,920 quitando escudo, según 1882 01:13:23,920 --> 01:13:25,920 si el impacto o el escudo 1883 01:13:25,920 --> 01:13:27,920 son mayor o menor entre sí. 1884 01:13:27,920 --> 01:13:29,920 Entonces, vamos a ver 1885 01:13:29,920 --> 01:13:31,920 este juego cómo funciona. 1886 01:13:31,920 --> 01:13:33,920 Le doy aquí al play 1887 01:13:33,920 --> 01:13:35,920 y empezamos. Empezamos 1888 01:13:35,920 --> 01:13:37,920 con cien y tres vidas, ¿no? Le damos a play, 1889 01:13:37,920 --> 01:13:39,920 a barra 1890 01:13:39,920 --> 01:13:41,920 espaciadora, perdón, y empieza 1891 01:13:41,920 --> 01:13:43,920 a restar, empieza a restar, empieza a restar, 1892 01:13:43,920 --> 01:13:45,920 ¿vale? Y cuando ya el escudo se 1893 01:13:45,920 --> 01:13:47,920 vaya, te han quitado una vida, te quedan dos vidas. 1894 01:13:47,920 --> 01:13:49,920 Y se ha recargado en este momento 1895 01:13:49,920 --> 01:13:51,920 a cien el escudo, dos vidas, cien. 1896 01:13:51,920 --> 01:13:53,920 Vuelvo a darle, la nave tiene 1897 01:13:53,920 --> 01:13:55,920 ocho escudos, cuarenta y cinco, quince. 1898 01:13:55,920 --> 01:13:57,920 Te han quitado una vida, te quedan una vida. 1899 01:13:57,920 --> 01:13:59,920 Bueno, ese habría que solucionar 1900 01:13:59,920 --> 01:14:01,920 que cuando queda solo una vida, también el mensaje 1901 01:14:01,920 --> 01:14:03,920 pues quitará la S, se podría ir depurando, ¿no? 1902 01:14:03,920 --> 01:14:05,920 Vuelvo a darle, empiezo 1903 01:14:05,920 --> 01:14:07,920 de cien otra vez, ochenta y siete, ochenta y dos, 1904 01:14:07,920 --> 01:14:09,920 cuarenta y siete, treinta y dos, y aquí 1905 01:14:09,920 --> 01:14:11,920 te han quitado una vida, te quedan cero vidas, 1906 01:14:11,920 --> 01:14:13,920 pues tienes cero vidas, ya has muerto. 1907 01:14:13,920 --> 01:14:15,920 ¿Vale? Este mensaje de te han quitado 1908 01:14:15,920 --> 01:14:17,920 una vida, ¿vale? 1909 01:14:17,920 --> 01:14:19,920 Te han quitado una vida, si 1910 01:14:21,920 --> 01:14:23,920 podemos hacer que lo enseñe 1911 01:14:23,920 --> 01:14:25,920 siempre que no sea 1912 01:14:25,920 --> 01:14:27,920 igual a cero, ¿no? Ahora mismo 1913 01:14:27,920 --> 01:14:29,920 siempre te lo va a enseñar aunque sea cero. 1914 01:14:29,920 --> 01:14:31,920 Si 1915 01:14:31,920 --> 01:14:33,920 podemos hacer, fijaos que 1916 01:14:33,920 --> 01:14:35,920 ahora me surge una nueva necesidad, ¿no? 1917 01:14:35,920 --> 01:14:37,920 Y esto lo planteamos otra vez 1918 01:14:37,920 --> 01:14:39,920 como lenguaje humano. Si 1919 01:14:39,920 --> 01:14:41,920 y para que veáis 1920 01:14:41,920 --> 01:14:43,920 que esto se puede escribir de muchas formas. 1921 01:14:43,920 --> 01:14:45,920 ¿Vale? Voy preparando un condicional y 1922 01:14:45,920 --> 01:14:47,920 meto entre llaves 1923 01:14:47,920 --> 01:14:49,920 lo que sé que voy a querer que ya esté 1924 01:14:49,920 --> 01:14:51,920 dentro de esa condicional. 1925 01:14:51,920 --> 01:14:53,920 ¿Vale? Si 1926 01:14:53,920 --> 01:14:55,920 las vidas nave 1927 01:14:55,920 --> 01:14:57,920 son 1928 01:14:57,920 --> 01:14:59,920 mayores que cero, 1929 01:14:59,920 --> 01:15:01,920 es decir, que está vivo, 1930 01:15:01,920 --> 01:15:03,920 también se podría hacer así, ahora lo hacemos así. 1931 01:15:03,920 --> 01:15:05,920 Me enseñas, te han quitado una vida 1932 01:15:05,920 --> 01:15:07,920 y el escudo pasa a ser cien. 1933 01:15:07,920 --> 01:15:09,920 Si esto pasa a ser, si 1934 01:15:09,920 --> 01:15:11,920 por el contrario tiene cero vidas, 1935 01:15:11,920 --> 01:15:13,920 me enseñas que tiene cero vidas. 1936 01:15:13,920 --> 01:15:15,920 Lo que hemos conseguido, para ir depurando un poco 1937 01:15:15,920 --> 01:15:17,920 que hace cada paso, 1938 01:15:17,920 --> 01:15:19,920 ahora cuando vayamos pasándonos 1939 01:15:19,920 --> 01:15:21,920 el juego, voy haciéndolo rápido, 1940 01:15:21,920 --> 01:15:23,920 cuando voy llegando al final, 1941 01:15:23,920 --> 01:15:25,920 ¿vale? Te va a 1942 01:15:25,920 --> 01:15:27,920 mostrar si tienes cero de vidas, 1943 01:15:27,920 --> 01:15:29,920 ¿vale? Y la nave tiene dos de escudo 1944 01:15:29,920 --> 01:15:31,920 y esto me lo está enseñando. 1945 01:15:31,920 --> 01:15:33,920 La nave tiene... Ah, porque le he vuelto a dar 1946 01:15:33,920 --> 01:15:35,920 a ver, impacto 1947 01:15:35,920 --> 01:15:37,920 mayor... 1948 01:15:37,920 --> 01:15:39,920 Claro, aquí 1949 01:15:39,920 --> 01:15:41,920 efectivamente, mira, 1950 01:15:41,920 --> 01:15:43,920 aquí, aunque ya hayamos muerto, 1951 01:15:43,920 --> 01:15:45,920 yo puedo seguir pulsando y sigue 1952 01:15:45,920 --> 01:15:47,920 variando si impacto se ejecuta 1953 01:15:47,920 --> 01:15:49,920 o no, ¿vale? Lo que habría que hacer 1954 01:15:49,920 --> 01:15:51,920 para que ya, una vez moramos, 1955 01:15:51,920 --> 01:15:53,920 no siga haciendo este cálculo y por tanto 1956 01:15:53,920 --> 01:15:55,920 no nos siga mostrando mensajes, como que el juego 1957 01:15:55,920 --> 01:15:57,920 sigue existiendo, es donde podemos, por 1958 01:15:57,920 --> 01:15:59,920 ejemplo, meter en valor 1959 01:15:59,920 --> 01:16:01,920 esta booleana para que se cumpla. 1960 01:16:01,920 --> 01:16:03,920 Es decir, si yo muero, si las vidas 1961 01:16:03,920 --> 01:16:05,920 pasan a ser cero, aparte del mensaje, 1962 01:16:05,920 --> 01:16:07,920 vivo 1963 01:16:07,920 --> 01:16:09,920 pasará a ser falso. 1964 01:16:09,920 --> 01:16:11,920 Entonces, yo una vez 1965 01:16:11,920 --> 01:16:13,920 llegue a este punto 1966 01:16:13,920 --> 01:16:15,920 y en vida en nave pasa a ser cero, 1967 01:16:15,920 --> 01:16:17,920 el juego, básicamente, 1968 01:16:17,920 --> 01:16:19,920 como tal, deja de funcionar, porque yo ya 1969 01:16:19,920 --> 01:16:21,920 no puedo hacer la condición que estoy 1970 01:16:21,920 --> 01:16:23,920 ejecutando en todo momento 1971 01:16:23,920 --> 01:16:25,920 para que se realice la acción. 1972 01:16:25,920 --> 01:16:27,920 Entonces, con esta 1973 01:16:27,920 --> 01:16:29,920 booleana, por mucho 1974 01:16:29,920 --> 01:16:31,920 que yo ahora siga... Guardo 1975 01:16:31,920 --> 01:16:33,920 y vuelvo al editor. Por mucho que yo siga 1976 01:16:33,920 --> 01:16:35,920 dando a 1977 01:16:35,920 --> 01:16:37,920 la barra espaciadora, le doy rápido... 1978 01:16:37,920 --> 01:16:39,920 ¿Vale? 1979 01:16:39,920 --> 01:16:41,920 Cuando llegue al punto de que me han 1980 01:16:41,920 --> 01:16:43,920 matado, por mucho que le de la barra espaciadora, 1981 01:16:43,920 --> 01:16:45,920 ya no pasa nada. Hasta que yo que sé, 1982 01:16:45,920 --> 01:16:47,920 en algún momento diga, vale, pero si le das 1983 01:16:47,920 --> 01:16:49,920 a la tecla 1984 01:16:49,920 --> 01:16:51,920 escape, lo podemos hacer. 1985 01:16:51,920 --> 01:16:53,920 A ver, aquí ya 1986 01:16:53,920 --> 01:16:55,920 empieza a liarse, ¿no? Cuando 1987 01:16:55,920 --> 01:16:57,920 marcáis un inicio de llave así, 1988 01:16:57,920 --> 01:16:59,920 os marca donde se cierra, ¿vale? 1989 01:16:59,920 --> 01:17:01,920 Ahora yo quiero hacer algo independiente 1990 01:17:01,920 --> 01:17:03,920 de esto, que es 1991 01:17:03,920 --> 01:17:05,920 voy a hacer otro input en el que 1992 01:17:05,920 --> 01:17:07,920 si... 1993 01:17:07,920 --> 01:17:09,920 ¿Vale? Si yo 1994 01:17:09,920 --> 01:17:11,920 pulso, por ejemplo, la tecla 1995 01:17:11,920 --> 01:17:13,920 R, de reset, ¿vale? 1996 01:17:13,920 --> 01:17:15,920 Vuelvo a hacer lo mismo, solo quiero que sea 1997 01:17:15,920 --> 01:17:17,920 una vez cuando pulse la tecla. 1998 01:17:17,920 --> 01:17:19,920 GetKeyDown, ¿vale? 1999 01:17:19,920 --> 01:17:21,920 Y del KeyCode voy a querer que sea... 2000 01:17:21,920 --> 01:17:23,920 del KeyCode voy a poner, he dicho, la tecla R. 2001 01:17:27,920 --> 01:17:29,920 R, O, P, Q, R. Pues aquí la tenemos. 2002 01:17:29,920 --> 01:17:31,920 La damos y ahí está, esperando a que 2003 01:17:31,920 --> 01:17:33,920 hagamos algo. ¿Vale? Cuando yo pulse 2004 01:17:33,920 --> 01:17:35,920 la tecla R, y además, 2005 01:17:35,920 --> 01:17:37,920 no siempre, solo cuando 2006 01:17:39,920 --> 01:17:41,920 vivo sea 2007 01:17:41,920 --> 01:17:43,920 falso, 2008 01:17:43,920 --> 01:17:45,920 igual, 2009 01:17:45,920 --> 01:17:47,920 recordad que hay que poner el doble 2010 01:17:47,920 --> 01:17:49,920 igual, ¿vale? Siempre que vivo sea falso, 2011 01:17:49,920 --> 01:17:51,920 es decir, que esté muerto, porque si no, cada 2012 01:17:51,920 --> 01:17:53,920 vez que le diera R, estaría cambiando 2013 01:17:53,920 --> 01:17:55,920 el valor de vivo, pero yo solo quiero cambiarlo una vez 2014 01:17:55,920 --> 01:17:57,920 ha pasado a ser falso, ¿vale? 2015 01:17:57,920 --> 01:17:59,920 Lo que vamos a hacer es que en ese momento 2016 01:17:59,920 --> 01:18:01,920 vivo 2017 01:18:01,920 --> 01:18:03,920 va a pasar a valer 2018 01:18:03,920 --> 01:18:05,920 true. ¿Qué significa eso? 2019 01:18:05,920 --> 01:18:07,920 Que yo puedo pasarme el juego 2020 01:18:07,920 --> 01:18:09,920 y una vez muero, cuando le dé a la 2021 01:18:09,920 --> 01:18:11,920 R, si ya me he muerto, pues estoy 2022 01:18:11,920 --> 01:18:13,920 reiniciando el juego, ¿vale? Porque vuelve 2023 01:18:13,920 --> 01:18:15,920 a estar vivo. 2024 01:18:15,920 --> 01:18:17,920 No estoy reiniciando el juego como tal, porque habría 2025 01:18:17,920 --> 01:18:19,920 que resetear otra vez 2026 01:18:19,920 --> 01:18:21,920 la vida que tiene y el escudo, ¿vale? 2027 01:18:21,920 --> 01:18:23,920 Que se puede hacer aquí a continuación muy fácilmente, 2028 01:18:23,920 --> 01:18:25,920 pero 2029 01:18:25,920 --> 01:18:27,920 estoy diciendo que otra vez sea vivo 2030 01:18:27,920 --> 01:18:29,920 true y por tanto se pueda volver a cumplir 2031 01:18:29,920 --> 01:18:31,920 la condición, sino ya todo lo que hay aquí 2032 01:18:31,920 --> 01:18:33,920 en esta llave, toda esta parte, básicamente 2033 01:18:33,920 --> 01:18:35,920 la práctica totalidad de lo que 2034 01:18:35,920 --> 01:18:37,920 acabamos de programar, no se ejecuta. 2035 01:18:37,920 --> 01:18:39,920 Entonces con esto podemos 2036 01:18:39,920 --> 01:18:41,920 conseguir que vuelva a ser 2037 01:18:41,920 --> 01:18:43,920 true. Aparte habría que decir, 2038 01:18:43,920 --> 01:18:45,920 yo he muerto, he pasado a tener cero, 2039 01:18:45,920 --> 01:18:47,920 pues cuando le dé a la R, 2040 01:18:47,920 --> 01:18:49,920 voy a poner un mensaje 2041 01:18:49,920 --> 01:18:51,920 para que veáis. 2042 01:18:53,920 --> 01:18:55,920 Pongo 2043 01:18:55,920 --> 01:18:57,920 a ver... 2044 01:18:57,920 --> 01:18:59,920 Has reiniciado el juego. 2045 01:19:01,920 --> 01:19:03,920 Entonces hay que poner otra vez prácticamente 2046 01:19:03,920 --> 01:19:05,920 los valores que teníamos en el start, 2047 01:19:05,920 --> 01:19:07,920 que es otra vez volver a decir, 2048 01:19:07,920 --> 01:19:09,920 el vivo ahora lo borro, 2049 01:19:09,920 --> 01:19:11,920 volver a darle las condiciones de reinicio 2050 01:19:11,920 --> 01:19:13,920 del juego, que tenga otra vez 2051 01:19:13,920 --> 01:19:15,920 tres vidas y escudo. 2052 01:19:15,920 --> 01:19:17,920 Has reiniciado el juego, y ahí volvería 2053 01:19:17,920 --> 01:19:19,920 otra vez a ejecutarse el juego. 2054 01:19:19,920 --> 01:19:21,920 Aunque yo pulsara R 2055 01:19:21,920 --> 01:19:23,920 otra vez, según le doy, 2056 01:19:23,920 --> 01:19:25,920 como vivo no vuelve a ser falso, 2057 01:19:25,920 --> 01:19:27,920 es decir, he pasado a ser true y ya no se da esta 2058 01:19:27,920 --> 01:19:29,920 condición, hasta que no vuelva a morir, 2059 01:19:29,920 --> 01:19:31,920 esta operación no se ejecuta. 2060 01:19:31,920 --> 01:19:33,920 ¿Vale? 2061 01:19:33,920 --> 01:19:35,920 ¿Qué tal? ¿Hasta aquí me seguís? Ahora lo probamos, 2062 01:19:35,920 --> 01:19:37,920 pero me vais siguiendo. 2063 01:19:37,920 --> 01:19:39,920 ¿Dudas que tengáis? 2064 01:19:39,920 --> 01:19:41,920 Me decís, por fa. 2065 01:19:43,920 --> 01:19:45,920 Esto es... 2066 01:19:45,920 --> 01:19:47,920 Más o menos, sí. Esto es de ir... 2067 01:19:49,920 --> 01:19:51,920 Incluso en un papel se puede ir escribiendo 2068 01:19:51,920 --> 01:19:53,920 y traduciendo esto al lenguaje de programación 2069 01:19:53,920 --> 01:19:55,920 que vamos teniendo. Pero veis que a veces 2070 01:19:55,920 --> 01:19:57,920 es confuso, porque hay que ir 2071 01:19:57,920 --> 01:19:59,920 probando y hay que ir cambiando el orden 2072 01:19:59,920 --> 01:20:01,920 de las cosas y las condiciones dentro de otra. 2073 01:20:01,920 --> 01:20:03,920 ¿No se pone otra vez el número de vidas? 2074 01:20:03,920 --> 01:20:05,920 Exactamente. Aquí está. 2075 01:20:05,920 --> 01:20:07,920 Vida en nave pasa a ser otra vez tres. 2076 01:20:07,920 --> 01:20:09,920 ¿Vale? 2077 01:20:09,920 --> 01:20:11,920 Entonces, 2078 01:20:11,920 --> 01:20:13,920 guardo, voy al editor, 2079 01:20:13,920 --> 01:20:15,920 y yo... 2080 01:20:15,920 --> 01:20:17,920 Empiezo a dar. Juego. 2081 01:20:17,920 --> 01:20:19,920 Voy dándole... 2082 01:20:19,920 --> 01:20:21,920 Tiene un escudo... 2083 01:20:21,920 --> 01:20:23,920 Vale, ya me han matado. 2084 01:20:23,920 --> 01:20:25,920 Me quedan dos vidas. Sigo. 2085 01:20:25,920 --> 01:20:27,920 Te han quitado una vida. ¿Te queda una? 2086 01:20:27,920 --> 01:20:29,920 Vale, sigo, sigo, sigo. 2087 01:20:29,920 --> 01:20:31,920 Tienes cero vidas. Has muerto. 2088 01:20:31,920 --> 01:20:33,920 Y sigo dándole la barra espaciadora y es que el juego ya... 2089 01:20:33,920 --> 01:20:35,920 Pondría un game over también. 2090 01:20:35,920 --> 01:20:37,920 Cuando sepamos más cosas, aquí habría que decir 2091 01:20:37,920 --> 01:20:39,920 en este momento de morir 2092 01:20:39,920 --> 01:20:41,920 que aparezca una nueva escena, que es la del 2093 01:20:41,920 --> 01:20:43,920 menú de game over. ¿Vale? Pero bueno, 2094 01:20:43,920 --> 01:20:45,920 de momento no sabemos, entonces hemos dicho 2095 01:20:45,920 --> 01:20:47,920 que como vivo 2096 01:20:47,920 --> 01:20:49,920 pasa a ser falso, 2097 01:20:49,920 --> 01:20:51,920 se cumple la condición de que si yo le doy a la R, 2098 01:20:51,920 --> 01:20:53,920 voy a reiniciar. Le doy a la R. 2099 01:20:53,920 --> 01:20:55,920 Blast. Ha reiniciado el juego. 2100 01:20:55,920 --> 01:20:57,920 ¿Vale? Y ahora otra vez, 2101 01:20:57,920 --> 01:20:59,920 no estoy volviendo a ejecutar el juego, 2102 01:20:59,920 --> 01:21:01,920 no lo he parado. Sigo dándole y ahora 2103 01:21:01,920 --> 01:21:03,920 otra vez empezamos el juego. 2104 01:21:03,920 --> 01:21:05,920 Otra vez dos vidas, una vida, 2105 01:21:05,920 --> 01:21:07,920 vuelvo a morir. Sigo dando la barra espaciadora, 2106 01:21:07,920 --> 01:21:09,920 no pasa nada. Le vuelvo a dar a la R. 2107 01:21:09,920 --> 01:21:11,920 Ha reiniciado el juego. Y así, ya tenemos 2108 01:21:11,920 --> 01:21:13,920 un juego de bucle infinito. 2109 01:21:13,920 --> 01:21:15,920 ¿Vale? Poco visual, pero 2110 01:21:15,920 --> 01:21:17,920 muy operativo a nivel 2111 01:21:17,920 --> 01:21:19,920 de cómo se realiza. ¿Vale? 2112 01:21:19,920 --> 01:21:21,920 Hasta aquí, ¿qué tal? 2113 01:21:23,920 --> 01:21:25,920 ¿Tiene sentido? 2114 01:21:25,920 --> 01:21:27,920 Sé que se han 2115 01:21:27,920 --> 01:21:29,920 revesado, pero al final es 2116 01:21:29,920 --> 01:21:31,920 darles muchas vueltas. Y bueno, hay más 2117 01:21:31,920 --> 01:21:33,920 cosas que os pongo en el enunciado. Ahora 2118 01:21:33,920 --> 01:21:35,920 voy a decir algunos 2119 01:21:35,920 --> 01:21:37,920 atajos o comandos más 2120 01:21:37,920 --> 01:21:39,920 importantes, creo. Pero 2121 01:21:39,920 --> 01:21:41,920 bueno, en esencia ya veis. Importante 2122 01:21:41,920 --> 01:21:43,920 lo de los ifs, ir probando, 2123 01:21:43,920 --> 01:21:45,920 porque es verdad que se pueden hacer 2124 01:21:45,920 --> 01:21:47,920 muchísimas condiciones concatenadas 2125 01:21:47,920 --> 01:21:49,920 y a veces ya cuando se van haciendo 2126 01:21:49,920 --> 01:21:51,920 muchas condiciones es complicado saber 2127 01:21:51,920 --> 01:21:53,920 qué alude a qué y qué se va haciendo 2128 01:21:53,920 --> 01:21:55,920 con qué. ¿Vale? 2129 01:21:55,920 --> 01:21:57,920 Entonces, 2130 01:21:57,920 --> 01:21:59,920 con esto 2131 01:21:59,920 --> 01:22:01,920 ya más o menos podríais ir resolviendo 2132 01:22:01,920 --> 01:22:03,920 la tarea. Pero, ¿vale? 2133 01:22:03,920 --> 01:22:05,920 Que ya os dije que es una tarea un poco para 2134 01:22:05,920 --> 01:22:07,920 que vayáis teniendo. Lo de hacerlo cada 2135 01:22:07,920 --> 01:22:09,920 dos segundos se podría hacer, 2136 01:22:09,920 --> 01:22:11,920 pero habría que explicar alguna cosa 2137 01:22:11,920 --> 01:22:13,920 que de hecho ahora voy a introducir. 2138 01:22:13,920 --> 01:22:15,920 Cuando nos quita una vida y no hayamos 2139 01:22:15,920 --> 01:22:17,920 muerto, realizaremos un bucle. Habría 2140 01:22:17,920 --> 01:22:19,920 que hacer un for 2141 01:22:19,920 --> 01:22:21,920 contando las vidas que 2142 01:22:21,920 --> 01:22:23,920 quedan. Esto es un poco por practicar 2143 01:22:23,920 --> 01:22:25,920 una cosa de un bucle for. Lo veremos más 2144 01:22:25,920 --> 01:22:27,920 adelante algún bucle for. Ahora mismo no es 2145 01:22:27,920 --> 01:22:29,920 lo que más me preocupa entonces. Lo que sí me 2146 01:22:29,920 --> 01:22:31,920 preocupa es explicar cómo se declara un método. 2147 01:22:31,920 --> 01:22:33,920 ¿Vale? ¿Hasta aquí alguna duda? Que voy a pasar 2148 01:22:33,920 --> 01:22:35,920 un poco a otra cosa. 2149 01:22:37,920 --> 01:22:39,920 No. Vale. Sigo. 2150 01:22:39,920 --> 01:22:41,920 Y bueno, ¿veis que? Incluso 2151 01:22:41,920 --> 01:22:43,920 esto que es basiquillo, 2152 01:22:43,920 --> 01:22:45,920 ¿vale? Y que lo tengo yo planteado, 2153 01:22:45,920 --> 01:22:47,920 a veces hay que 2154 01:22:47,920 --> 01:22:49,920 darle vueltas y a la primera no sale. No desesperéis. 2155 01:22:49,920 --> 01:22:51,920 ¿Vale? Esto es sentarse, 2156 01:22:51,920 --> 01:22:53,920 ir viendo por qué algo falla, ¿no? Ver 2157 01:22:53,920 --> 01:22:55,920 en qué momento está y en qué momento no. 2158 01:22:55,920 --> 01:22:57,920 ¿Vale? Igual 2159 01:22:57,920 --> 01:22:59,920 que aquí vamos teniendo 2160 01:22:59,920 --> 01:23:01,920 estos métodos, que pone void start, 2161 01:23:01,920 --> 01:23:03,920 void update, nosotros 2162 01:23:03,920 --> 01:23:05,920 también podemos ir generando nuestros propios 2163 01:23:05,920 --> 01:23:07,920 métodos. ¿Vale? Instantiate. 2164 01:23:07,920 --> 01:23:09,920 El otro día os dije, esto es un método. 2165 01:23:09,920 --> 01:23:11,920 Debug log es un método, el log. 2166 01:23:11,920 --> 01:23:13,920 ¿Vale? Y os dije, los métodos se declaran 2167 01:23:13,920 --> 01:23:15,920 con un nombre que 2168 01:23:15,920 --> 01:23:17,920 empiezan por mayúscula, como start, 2169 01:23:17,920 --> 01:23:19,920 y luego tienen un paréntesis. ¿Vale? 2170 01:23:19,920 --> 01:23:21,920 Aquí, por ejemplo, log, lo que hay en el paréntesis, 2171 01:23:21,920 --> 01:23:23,920 lo que hará será mostrarlo en consola. 2172 01:23:23,920 --> 01:23:25,920 Esa es la función de ese método. 2173 01:23:25,920 --> 01:23:27,920 Y digo la función de ese método porque se pueden 2174 01:23:27,920 --> 01:23:29,920 llamar funciones o métodos. Son iguales. 2175 01:23:29,920 --> 01:23:31,920 ¿Vale? Pueden tener algo 2176 01:23:31,920 --> 01:23:33,920 dentro de estos paréntesis o no. 2177 01:23:33,920 --> 01:23:35,920 ¿Vale? Si en start tiene algún 2178 01:23:35,920 --> 01:23:37,920 parámetro que 2179 01:23:37,920 --> 01:23:39,920 tengamos que introducir, 2180 01:23:39,920 --> 01:23:41,920 porque está así ideado el método, 2181 01:23:41,920 --> 01:23:43,920 lo introduciremos. O puede haber sobrecargas, 2182 01:23:43,920 --> 01:23:45,920 como vimos en Instantiate, y que haya distintos tipos 2183 01:23:45,920 --> 01:23:47,920 de posibilidades para 2184 01:23:47,920 --> 01:23:49,920 usar ese método. Entonces nosotros 2185 01:23:49,920 --> 01:23:51,920 podemos también declarar métodos 2186 01:23:51,920 --> 01:23:53,920 con varios 2187 01:23:53,920 --> 01:23:55,920 propósitos, pero en estos momentos 2188 01:23:55,920 --> 01:23:57,920 para poder 2189 01:23:57,920 --> 01:23:59,920 reutilizar fragmentos de código. 2190 01:23:59,920 --> 01:24:01,920 ¿Vale? Por ejemplo, 2191 01:24:01,920 --> 01:24:03,920 aquí estamos haciendo algo 2192 01:24:03,920 --> 01:24:05,920 que quizás este no es el mejor 2193 01:24:05,920 --> 01:24:07,920 ejemplo, aunque se va a entender creo, 2194 01:24:07,920 --> 01:24:09,920 pero luego lo iréis viendo 2195 01:24:09,920 --> 01:24:11,920 en más ocasiones, en el que yo 2196 01:24:11,920 --> 01:24:13,920 no quiero tener en el update 2197 01:24:13,920 --> 01:24:15,920 todo el código aquí metido porque 2198 01:24:15,920 --> 01:24:17,920 luego el resto de operaciones que hagamos en update, 2199 01:24:17,920 --> 01:24:19,920 todo va a ir en este bloque de 2200 01:24:19,920 --> 01:24:21,920 update. Y va a ser demasiado código 2201 01:24:21,920 --> 01:24:23,920 mezclado, etc. Entonces podemos 2202 01:24:23,920 --> 01:24:25,920 ir organizándolo en comportamientos 2203 01:24:25,920 --> 01:24:27,920 que conseguimos 2204 01:24:27,920 --> 01:24:29,920 en esos métodos. 2205 01:24:29,920 --> 01:24:31,920 Los métodos 2206 01:24:31,920 --> 01:24:33,920 se declaran al mismo nivel que estos 2207 01:24:33,920 --> 01:24:35,920 métodos, habría que matizarlo, 2208 01:24:35,920 --> 01:24:37,920 pero de momento como regla, los métodos 2209 01:24:37,920 --> 01:24:39,920 se declaran al mismo nivel que 2210 01:24:39,920 --> 01:24:41,920 los métodos que hay de ejecución. Es 2211 01:24:41,920 --> 01:24:43,920 otro método más. Igual que aquí tenemos un método 2212 01:24:43,920 --> 01:24:45,920 void o update, 2213 01:24:45,920 --> 01:24:47,920 que no me sale, 2214 01:24:47,920 --> 01:24:49,920 a veces me trabo. 2215 01:24:49,920 --> 01:24:51,920 En esta misma jerarquía, cuando salgamos de este método, 2216 01:24:51,920 --> 01:24:53,920 yo puedo, aquí, 2217 01:24:53,920 --> 01:24:55,920 esta es la llave de clase, 2218 01:24:55,920 --> 01:24:57,920 de la clase en completa, y aquí podríamos hacer 2219 01:24:57,920 --> 01:24:59,920 más métodos. 2220 01:24:59,920 --> 01:25:01,920 Por lo general vamos a hacer 2221 01:25:01,920 --> 01:25:03,920 métodos que 2222 01:25:03,920 --> 01:25:05,920 lo que hacen es recopilar código de otra parte. 2223 01:25:05,920 --> 01:25:07,920 Lo que vamos a hacer es, 2224 01:25:07,920 --> 01:25:09,920 lo hago primero y luego lo explico, 2225 01:25:09,920 --> 01:25:11,920 generar un método que se 2226 01:25:11,920 --> 01:25:13,920 llame impacto. Como hemos dicho, 2227 01:25:13,920 --> 01:25:15,920 siempre los métodos 2228 01:25:15,920 --> 01:25:17,920 con mayúsculas empiezan para 2229 01:25:17,920 --> 01:25:19,920 distinguirlos de las variables, por ejemplo, 2230 01:25:19,920 --> 01:25:21,920 y se mete paréntesis. 2231 01:25:21,920 --> 01:25:23,920 Y luego entre llaves estará todo eso que resume. 2232 01:25:25,920 --> 01:25:27,920 Y ahora mismo tenemos de manera 2233 01:25:27,920 --> 01:25:29,920 aislada por aquí, igual que las variables 2234 01:25:29,920 --> 01:25:31,920 están dentro de la clase pero no se están 2235 01:25:31,920 --> 01:25:33,920 ejecutando en ningún momento, 2236 01:25:33,920 --> 01:25:35,920 tenemos aquí una variable 2237 01:25:35,920 --> 01:25:37,920 llamada impacto. 2238 01:25:37,920 --> 01:25:39,920 ¿Esto qué es lo que va a hacer? 2239 01:25:39,920 --> 01:25:41,920 Que aquí todo lo que metamos dentro 2240 01:25:41,920 --> 01:25:43,920 de este código se va a ejecutar siempre 2241 01:25:43,920 --> 01:25:45,920 que llamemos a impacto. 2242 01:25:45,920 --> 01:25:47,920 Igual que el otro día cuando poníamos 2243 01:25:47,920 --> 01:25:49,920 instantiate, cuando instanciábamos 2244 01:25:49,920 --> 01:25:51,920 algo, habrá en algún punto del código, 2245 01:25:51,920 --> 01:25:53,920 de alguna forma, que haya 2246 01:25:53,920 --> 01:25:55,920 un bloque, 2247 01:25:55,920 --> 01:25:57,920 llamado instantiate, 2248 01:25:57,920 --> 01:25:59,920 que dentro tendrá toda la programación 2249 01:25:59,920 --> 01:26:01,920 para que entienda 2250 01:26:01,920 --> 01:26:03,920 qué tiene que hacer cuando le pasamos 2251 01:26:03,920 --> 01:26:05,920 valores aquí entre estos paréntesis. 2252 01:26:05,920 --> 01:26:07,920 Eso está programado ya por defecto 2253 01:26:07,920 --> 01:26:09,920 en el lenguaje 2254 01:26:09,920 --> 01:26:11,920 que provee Unity. 2255 01:26:11,920 --> 01:26:13,920 Entonces, lo que podemos hacer 2256 01:26:13,920 --> 01:26:15,920 con un void, 2257 01:26:15,920 --> 01:26:17,920 en inglés significa vacío, la nada. 2258 01:26:17,920 --> 01:26:19,920 Un void es la nada. 2259 01:26:19,920 --> 01:26:21,920 Porque los métodos 2260 01:26:21,920 --> 01:26:23,920 también pueden devolver 2261 01:26:23,920 --> 01:26:25,920 números, pueden devolver textos, 2262 01:26:25,920 --> 01:26:27,920 y hacer operaciones que devuelven 2263 01:26:27,920 --> 01:26:29,920 un valor. 2264 01:26:29,920 --> 01:26:31,920 A eso si acaso voy un poco más tarde. 2265 01:26:31,920 --> 01:26:33,920 Vamos a lo básico. 2266 01:26:33,920 --> 01:26:35,920 Si ponemos void, significa que cuando llamemos 2267 01:26:35,920 --> 01:26:37,920 a este método, va a pasar por este código, 2268 01:26:37,920 --> 01:26:39,920 se va a ejecutar lo del código y listo. 2269 01:26:39,920 --> 01:26:41,920 ¿Esto qué significa? Que si cogemos 2270 01:26:41,920 --> 01:26:43,920 todo lo que hemos hecho antes dentro del update, 2271 01:26:43,920 --> 01:26:45,920 cuando digo todo es 2272 01:26:45,920 --> 01:26:47,920 todo lo que hay entre estas llaves, 2273 01:26:47,920 --> 01:26:49,920 no nos llevamos las llaves porque el bloque tiene que seguir existiendo. 2274 01:26:49,920 --> 01:26:51,920 Si yo corto 2275 01:26:51,920 --> 01:26:53,920 y lo pego dentro de impacto, 2276 01:26:53,920 --> 01:26:55,920 ahora mismo tengo un método llamado 2277 01:26:55,920 --> 01:26:57,920 impacto, que 2278 01:26:57,920 --> 01:26:59,920 tiene todo este código 2279 01:26:59,920 --> 01:27:01,920 esperando a que se llame impacto. 2280 01:27:01,920 --> 01:27:03,920 Igual que el otro 2281 01:27:03,920 --> 01:27:05,920 hacíamos con 2282 01:27:07,920 --> 01:27:09,920 el instantiate, 2283 01:27:09,920 --> 01:27:11,920 yo ahora puedo decir impacto, 2284 01:27:11,920 --> 01:27:13,920 ¿veis que cuando lo he creado 2285 01:27:13,920 --> 01:27:15,920 aparece esta clase? 2286 01:27:15,920 --> 01:27:17,920 Y ojo, lo he hecho a posta. 2287 01:27:17,920 --> 01:27:19,920 Veréis que aparecen dos impactos. 2288 01:27:19,920 --> 01:27:21,920 Hay un impacto que empieza con mayúscula 2289 01:27:21,920 --> 01:27:23,920 y otro impacto que empieza con minúscula. 2290 01:27:23,920 --> 01:27:25,920 Y los dos son nombres además 2291 01:27:25,920 --> 01:27:27,920 que he creado yo en algún momento. 2292 01:27:27,920 --> 01:27:29,920 Si os fijáis aquí, aparece 2293 01:27:29,920 --> 01:27:31,920 esa caja 2294 01:27:31,920 --> 01:27:33,920 morada, que significa que es una clase 2295 01:27:33,920 --> 01:27:35,920 y esto, 2296 01:27:35,920 --> 01:27:37,920 esta caja azul, 2297 01:27:37,920 --> 01:27:39,920 estamos mucho con las cajas siempre, 2298 01:27:39,920 --> 01:27:41,920 esta caja azul que es una variable. 2299 01:27:41,920 --> 01:27:43,920 Yo he creado la 2300 01:27:43,920 --> 01:27:45,920 función impacto con i mayúscula 2301 01:27:45,920 --> 01:27:47,920 y aquí al principio 2302 01:27:47,920 --> 01:27:49,920 tenemos la variable impacto 2303 01:27:49,920 --> 01:27:51,920 con i minúscula, y por eso lo sé 2304 01:27:51,920 --> 01:27:53,920 distinguir, por eso es importante, porque veis 2305 01:27:53,920 --> 01:27:55,920 que cuando estamos haciendo un juego 2306 01:27:55,920 --> 01:27:57,920 con lógicas es muy fácil 2307 01:27:57,920 --> 01:27:59,920 que se llamen igual las variables, 2308 01:27:59,920 --> 01:28:01,920 los métodos, lo que hacemos, disparo. 2309 01:28:01,920 --> 01:28:03,920 Por disparo puede ser 2310 01:28:03,920 --> 01:28:05,920 el daño que hace ese disparo 2311 01:28:05,920 --> 01:28:07,920 o la acción de disparar. 2312 01:28:07,920 --> 01:28:09,920 La forma de distinguirlo es 2313 01:28:09,920 --> 01:28:11,920 un poco con el método de escritura. 2314 01:28:11,920 --> 01:28:13,920 Yo ahora cuando llame 2315 01:28:13,920 --> 01:28:15,920 a impacto 2316 01:28:15,920 --> 01:28:17,920 lo que estoy haciendo es 2317 01:28:17,920 --> 01:28:19,920 que en el update está todo el rato buscando 2318 01:28:19,920 --> 01:28:21,920 dentro de impacto, y aquí 2319 01:28:21,920 --> 01:28:23,920 tengo solo en este momento 2320 01:28:23,920 --> 01:28:25,920 una línea que llama a este 2321 01:28:25,920 --> 01:28:27,920 método y ejecuta lo que hay en el método. 2322 01:28:27,920 --> 01:28:29,920 Es verdad que no va a pasar nada porque hasta que no puse 2323 01:28:29,920 --> 01:28:31,920 una de las teclas que están aquí configuradas 2324 01:28:31,920 --> 01:28:33,920 pues no va a pasar nada. 2325 01:28:33,920 --> 01:28:35,920 Pero si 2326 01:28:35,920 --> 01:28:37,920 este impacto lo quiero usar 2327 01:28:37,920 --> 01:28:39,920 aquí también, 2328 01:28:39,920 --> 01:28:41,920 lo quiero tanto 2329 01:28:41,920 --> 01:28:43,920 en el start como en el 2330 01:28:43,920 --> 01:28:45,920 update. 2331 01:28:45,920 --> 01:28:47,920 Yo simplemente 2332 01:28:47,920 --> 01:28:49,920 con poner la palabra impacto 2333 01:28:49,920 --> 01:28:51,920 o cuando yo pulse la tecla 2334 01:28:51,920 --> 01:28:53,920 no sé cuánto, 2335 01:28:53,920 --> 01:28:55,920 se puede llamar a impacto 2336 01:28:55,920 --> 01:28:57,920 para que se reproduzca 2337 01:28:57,920 --> 01:28:59,920 lo que hay aquí. 2338 01:28:59,920 --> 01:29:01,920 Una forma de resumir 2339 01:29:01,920 --> 01:29:03,920 partes de código 2340 01:29:03,920 --> 01:29:05,920 se puede hacer de forma 2341 01:29:05,920 --> 01:29:07,920 como la que tenemos aquí que es 2342 01:29:07,920 --> 01:29:09,920 creando un método de tipo vacío 2343 01:29:09,920 --> 01:29:11,920 y con el nombre que queramos. 2344 01:29:11,920 --> 01:29:13,920 Ahora básicamente 2345 01:29:13,920 --> 01:29:15,920 lo que va a estar haciendo en el update 2346 01:29:15,920 --> 01:29:17,920 todo el rato es, y esto no es muy eficiente 2347 01:29:17,920 --> 01:29:19,920 ahora mismo porque estamos 2348 01:29:19,920 --> 01:29:21,920 a diferencia de antes, está todo el rato 2349 01:29:21,920 --> 01:29:23,920 mirando lo que hay dentro 2350 01:29:23,920 --> 01:29:25,920 y dice hasta que no le dé a la tecla espacio 2351 01:29:25,920 --> 01:29:27,920 pues no se mete. 2352 01:29:27,920 --> 01:29:29,920 Que impacto a lo mejor podría ejecutarse 2353 01:29:29,920 --> 01:29:31,920 en el momento en el que 2354 01:29:31,920 --> 01:29:33,920 pusiéramos un if y se ejecute. 2355 01:29:33,920 --> 01:29:35,920 Pero es verdad que como hemos metido dos 2356 01:29:35,920 --> 01:29:37,920 ifs de tipo 2357 01:29:37,920 --> 01:29:39,920 pulse a tal tecla, pues lo suyo 2358 01:29:39,920 --> 01:29:41,920 es que vaya comprobando 2359 01:29:41,920 --> 01:29:43,920 este impacto porque 2360 01:29:43,920 --> 01:29:45,920 vaya buscando 2361 01:29:45,920 --> 01:29:47,920 qué input estamos tocando en todo momento. 2362 01:29:47,920 --> 01:29:49,920 Pero si lo pensamos bien 2363 01:29:51,920 --> 01:29:53,920 realmente 2364 01:29:53,920 --> 01:29:55,920 este impacto 2365 01:29:55,920 --> 01:29:57,920 solo se debería referir a cuando le damos 2366 01:29:57,920 --> 01:29:59,920 a la barra espaciadora, que es cuando generamos el impacto. 2367 01:29:59,920 --> 01:30:01,920 Esta de pulsar la R 2368 01:30:01,920 --> 01:30:03,920 realmente no es 2369 01:30:03,920 --> 01:30:05,920 la acción de impacto, 2370 01:30:05,920 --> 01:30:07,920 es la acción de reiniciar 2371 01:30:07,920 --> 01:30:09,920 juego o reiniciar 2372 01:30:09,920 --> 01:30:11,920 o reinicio o reseteo, lo que queramos. 2373 01:30:11,920 --> 01:30:13,920 Entonces estamos mezclando en un mismo método 2374 01:30:13,920 --> 01:30:15,920 dos tipos de acciones. 2375 01:30:15,920 --> 01:30:17,920 Nos puede interesar o no, 2376 01:30:17,920 --> 01:30:19,920 pero realmente no tiene lógica. 2377 01:30:19,920 --> 01:30:21,920 Lo que deberíamos hacer es que en el update 2378 01:30:21,920 --> 01:30:23,920 se ejecute el impacto cuando pulsemos una tecla. 2379 01:30:23,920 --> 01:30:25,920 Por tanto, la condición 2380 01:30:25,920 --> 01:30:27,920 que igual deberíamos hacer es 2381 01:30:27,920 --> 01:30:29,920 si se cumple esto mismo que estábamos haciendo 2382 01:30:29,920 --> 01:30:31,920 que tenemos aquí 2383 01:30:31,920 --> 01:30:33,920 pues que llame 2384 01:30:33,920 --> 01:30:35,920 a impacto y mire lo que hay dentro. 2385 01:30:35,920 --> 01:30:37,920 Entonces ahora en el update 2386 01:30:37,920 --> 01:30:39,920 hasta que yo no pulse esto 2387 01:30:39,920 --> 01:30:41,920 no se ejecuta esto. 2388 01:30:41,920 --> 01:30:43,920 Es verdad que ahora habrá que 2389 01:30:43,920 --> 01:30:45,920 reconfigurar, refactorizar 2390 01:30:45,920 --> 01:30:47,920 se puede llamar también que es recalibrar 2391 01:30:47,920 --> 01:30:49,920 un poco todo lo que hemos estado 2392 01:30:49,920 --> 01:30:51,920 trabajando para que 2393 01:30:51,920 --> 01:30:53,920 según le demos a la barra espaciadora 2394 01:30:53,920 --> 01:30:55,920 ya se ejecute este impacto. 2395 01:30:55,920 --> 01:30:57,920 Todas las acciones de impacto 2396 01:30:57,920 --> 01:30:59,920 hasta aquí. 2397 01:30:59,920 --> 01:31:01,920 Que es 2398 01:31:01,920 --> 01:31:03,920 donde termina de ejecutarse 2399 01:31:03,920 --> 01:31:05,920 la acción que estamos haciendo. 2400 01:31:05,920 --> 01:31:07,920 Es decir, ahora mismo si pulsamos 2401 01:31:07,920 --> 01:31:09,920 a la tecla espaciadora y estoy vivo 2402 01:31:09,920 --> 01:31:11,920 que por defecto lo estoy 2403 01:31:11,920 --> 01:31:13,920 se ejecuta todo lo que hay en impacto. 2404 01:31:13,920 --> 01:31:15,920 Se asigna un número aleatorio 2405 01:31:15,920 --> 01:31:17,920 de impacto, si vale más que el escudo 2406 01:31:17,920 --> 01:31:19,920 si tienes vidas tal o cual 2407 01:31:19,920 --> 01:31:21,920 te mata o no. 2408 01:31:21,920 --> 01:31:23,920 Pero lo que vamos a hacer es 2409 01:31:23,920 --> 01:31:25,920 en otro momento 2410 01:31:25,920 --> 01:31:27,920 diferente, si pulsamos 2411 01:31:27,920 --> 01:31:29,920 la tecla R y se dan las 2412 01:31:29,920 --> 01:31:31,920 características pues pasa 2413 01:31:31,920 --> 01:31:33,920 a ocurrir esto. Y esto sería otro 2414 01:31:33,920 --> 01:31:35,920 método. Esto sería el método 2415 01:31:37,920 --> 01:31:39,920 un segundito 2416 01:31:39,920 --> 01:31:41,920 y hay que ver bien en que nivel estamos 2417 01:31:41,920 --> 01:31:43,920 saliendo de este nivel 2418 01:31:43,920 --> 01:31:45,920 está mal tabulado y aquí 2419 01:31:45,920 --> 01:31:47,920 sobra una llave. Cuando salen a veces 2420 01:31:47,920 --> 01:31:49,920 llaves así sueltas es que cuando 2421 01:31:49,920 --> 01:31:51,920 hemos ido trabajando 2422 01:31:51,920 --> 01:31:53,920 hemos dejado alguna llave sin borrar. 2423 01:31:53,920 --> 01:31:55,920 Entonces ahora tenemos 2424 01:31:55,920 --> 01:31:57,920 todo el método que resume lo de impacto 2425 01:31:57,920 --> 01:31:59,920 y podemos hacer otro bolt que sea 2426 01:31:59,920 --> 01:32:01,920 resetear 2427 01:32:01,920 --> 01:32:03,920 y 2428 01:32:03,920 --> 01:32:05,920 reseteamos y entonces 2429 01:32:05,920 --> 01:32:07,920 lo que vamos a hacer es si pulsamos 2430 01:32:07,920 --> 01:32:09,920 tenemos aquí preparado este código 2431 01:32:09,920 --> 01:32:11,920 si pulsamos esta tecla 2432 01:32:11,920 --> 01:32:13,920 que se ejecute esto 2433 01:32:13,920 --> 01:32:15,920 pero a lo mejor voy a resetear 2434 01:32:15,920 --> 01:32:17,920 en distintos momentos del juego al pulsar la 2435 01:32:17,920 --> 01:32:19,920 R 2436 01:32:19,920 --> 01:32:21,920 con distintos atajos 2437 01:32:21,920 --> 01:32:23,920 entonces resetear 2438 01:32:23,920 --> 01:32:25,920 puede ser que siempre 2439 01:32:25,920 --> 01:32:27,920 haga que ponga reiniciado el juego y se 2440 01:32:27,920 --> 01:32:29,920 vuelvan a resetear otra vez 2441 01:32:29,920 --> 01:32:31,920 todas las variables 2442 01:32:31,920 --> 01:32:33,920 que yo lo puedo hacer con 2443 01:32:33,920 --> 01:32:35,920 la tecla R vivo y digo 2444 01:32:35,920 --> 01:32:37,920 resetear 2445 01:32:37,920 --> 01:32:39,920 entonces yo cuando pulse 2446 01:32:39,920 --> 01:32:41,920 esa tecla y se cumple 2447 01:32:41,920 --> 01:32:43,920 la condición de que es falso 2448 01:32:43,920 --> 01:32:45,920 pues al pulsar la R se reinicia 2449 01:32:45,920 --> 01:32:47,920 es un poco lo mismo pero es verdad que ahora 2450 01:32:47,920 --> 01:32:49,920 en cualquier momento del código o incluso en otros 2451 01:32:49,920 --> 01:32:51,920 scripts que tengamos que vayamos conectando 2452 01:32:53,920 --> 01:32:55,920 que tengamos por ahí 2453 01:32:55,920 --> 01:32:57,920 con poner resetear solo 2454 01:32:57,920 --> 01:32:59,920 ya estamos 2455 01:32:59,920 --> 01:33:01,920 hablando de todo esto y no hay que copiar 2456 01:33:01,920 --> 01:33:03,920 otra vez todo el código 2457 01:33:03,920 --> 01:33:05,920 no sé si me vais entendiendo 2458 01:33:05,920 --> 01:33:07,920 ahora mismo el juego 2459 01:33:07,920 --> 01:33:09,920 es prácticamente lo mismo 2460 01:33:09,920 --> 01:33:11,920 pero 2461 01:33:11,920 --> 01:33:13,920 lo hemos escrito 2462 01:33:13,920 --> 01:33:15,920 de una manera ligeramente diferente 2463 01:33:15,920 --> 01:33:17,920 y más reutilizable 2464 01:33:17,920 --> 01:33:19,920 cuando 2465 01:33:19,920 --> 01:33:21,920 usabais Instantiate 2466 01:33:21,920 --> 01:33:23,920 básicamente lo que se estaba haciendo era 2467 01:33:23,920 --> 01:33:25,920 un método o varios métodos 2468 01:33:25,920 --> 01:33:27,920 llamados Instantiate 2469 01:33:27,920 --> 01:33:29,920 que hacen ciertas operaciones 2470 01:33:29,920 --> 01:33:31,920 ahora yo vuelvo al juego 2471 01:33:31,920 --> 01:33:33,920 vuelvo al editor 2472 01:33:33,920 --> 01:33:35,920 y cuando 2473 01:33:35,920 --> 01:33:37,920 yo le doy aquí al 2474 01:33:37,920 --> 01:33:39,920 juego 2475 01:33:39,920 --> 01:33:41,920 la nave tiene 76 de escudo 2476 01:33:41,920 --> 01:33:43,920 según se arranca 2477 01:33:43,920 --> 01:33:45,920 la nave tiene 2478 01:33:45,920 --> 01:33:47,920 78 de escudo 2479 01:33:47,920 --> 01:33:49,920 fijaos 2480 01:33:49,920 --> 01:33:51,920 creo que antes he puesto algo por aquí 2481 01:33:51,920 --> 01:33:53,920 y ahora inicio el juego y ya me pone lo de la nave 2482 01:33:53,920 --> 01:33:55,920 tiene 78 de escudo y luego el escudo de la nave 2483 01:33:55,920 --> 01:33:57,920 tiene una energía de 78 2484 01:33:57,920 --> 01:33:59,920 mientras os iba explicando puse aquí impacto 2485 01:33:59,920 --> 01:34:01,920 y aquí no he puesto ninguna condición 2486 01:34:01,920 --> 01:34:03,920 aquí según arranca el juego se ponen las variables 2487 01:34:03,920 --> 01:34:05,920 se ejecuta el impacto 2488 01:34:05,920 --> 01:34:07,920 se lee todo lo que hay aquí 2489 01:34:07,920 --> 01:34:09,920 y luego ya me lee 2490 01:34:09,920 --> 01:34:11,920 el escudo tiene tantas cosas 2491 01:34:11,920 --> 01:34:13,920 tiene tanto de escudo y tanto tal 2492 01:34:13,920 --> 01:34:15,920 fijaos que aquí he llamado a un impacto 2493 01:34:15,920 --> 01:34:17,920 y por tanto ha hecho 2494 01:34:17,920 --> 01:34:19,920 el primer lanzamiento 2495 01:34:19,920 --> 01:34:21,920 del meteorito se ha hecho 2496 01:34:21,920 --> 01:34:23,920 sin pulsar ninguna tecla porque aquí no hay ninguna condición 2497 01:34:23,920 --> 01:34:25,920 a diferencia de aquí 2498 01:34:25,920 --> 01:34:27,920 entonces este impacto básicamente habría que borrarlo 2499 01:34:27,920 --> 01:34:29,920 porque no me interesa tenerlo ahí 2500 01:34:29,920 --> 01:34:31,920 pero veis que con una sola frase ya ha hecho un montón de acciones 2501 01:34:31,920 --> 01:34:33,920 que antes ha costado un montón 2502 01:34:33,920 --> 01:34:35,920 hacer aquí, vamos que tiene muchas líneas 2503 01:34:35,920 --> 01:34:37,920 y si quisiéramos 2504 01:34:37,920 --> 01:34:39,920 imaginaos que si quisiéramos que fuera así 2505 01:34:39,920 --> 01:34:41,920 no íbamos a escribir el código este tan largo 2506 01:34:41,920 --> 01:34:43,920 en el start y luego en el update 2507 01:34:43,920 --> 01:34:45,920 pues veis que se puede resumir y con una sola 2508 01:34:45,920 --> 01:34:47,920 llamadita 2509 01:34:47,920 --> 01:34:49,920 pues lo tenemos ahí para irlo 2510 01:34:49,920 --> 01:34:51,920 para irlo 2511 01:34:51,920 --> 01:34:53,920 para ir apelando a él 2512 01:34:53,920 --> 01:34:55,920 entonces ahora sí que sí 2513 01:34:55,920 --> 01:34:57,920 después de este 2514 01:34:57,920 --> 01:34:59,920 pequeño error del directo que dejé ahí 2515 01:34:59,920 --> 01:35:01,920 esta 2516 01:35:01,920 --> 01:35:03,920 esta llamada al 2517 01:35:03,920 --> 01:35:05,920 método impacto 2518 01:35:05,920 --> 01:35:07,920 pues si ahora inicio el juego 2519 01:35:07,920 --> 01:35:09,920 vale, inicio 2520 01:35:09,920 --> 01:35:11,920 empieza el escudo de la nave, tiene 2521 01:35:11,920 --> 01:35:13,920 100 de energía, pues ya empieza a jugar 2522 01:35:13,920 --> 01:35:15,920 le doy a la barra espaciadora 2523 01:35:15,920 --> 01:35:17,920 vale, empieza a jugar, empieza a jugar 2524 01:35:17,920 --> 01:35:19,920 y es exactamente el mismo juego 2525 01:35:19,920 --> 01:35:21,920 cuando llego a 0 vidas y estoy muerto 2526 01:35:21,920 --> 01:35:23,920 le tengo que dar 2527 01:35:23,920 --> 01:35:25,920 a la R 2528 01:35:25,920 --> 01:35:27,920 a reiniciar el juego, he llamado 2529 01:35:27,920 --> 01:35:29,920 a resetear porque se 2530 01:35:29,920 --> 01:35:31,920 daban las condiciones de que estuviera muerto 2531 01:35:31,920 --> 01:35:33,920 o no vivo 2532 01:35:33,920 --> 01:35:35,920 y le doy a la R 2533 01:35:35,920 --> 01:35:37,920 y otra vez volvemos a jugar 2534 01:35:37,920 --> 01:35:39,920 el update está continuamente viendo a ver si hacemos 2535 01:35:39,920 --> 01:35:41,920 en este caso una de estas dos acciones 2536 01:35:41,920 --> 01:35:43,920 que se cumplan, y ahí estamos 2537 01:35:43,920 --> 01:35:45,920 puedo volver a jugar y otra vez 2538 01:35:45,920 --> 01:35:47,920 hasta que lo mate 2539 01:35:47,920 --> 01:35:49,920 y ya se ha acabado el juego, R y vuelvo a 2540 01:35:49,920 --> 01:35:51,920 vale 2541 01:35:51,920 --> 01:35:53,920 entonces, lo que quiero que nos 2542 01:35:53,920 --> 01:35:55,920 llevemos hoy es que nosotros 2543 01:35:55,920 --> 01:35:57,920 podemos crear nuestras propias acciones 2544 01:35:57,920 --> 01:35:59,920 en esto que se llaman métodos 2545 01:35:59,920 --> 01:36:01,920 y de momento hemos visto un método 2546 01:36:01,920 --> 01:36:03,920 que es el void, pero luego puede haber 2547 01:36:03,920 --> 01:36:05,920 métodos que por ejemplo devuelvan un int 2548 01:36:05,920 --> 01:36:07,920 esto ya es más complejo 2549 01:36:07,920 --> 01:36:09,920 da un error ahora mismo porque hay que 2550 01:36:09,920 --> 01:36:11,920 poner otro comando y tal, pero bueno 2551 01:36:11,920 --> 01:36:13,920 me sirve con que sepáis que 2552 01:36:13,920 --> 01:36:15,920 como se declara un método 2553 01:36:15,920 --> 01:36:17,920 que está fuera de estos métodos 2554 01:36:17,920 --> 01:36:19,920 es como otro método distinto al 2555 01:36:19,920 --> 01:36:21,920 startUpdate y por eso 2556 01:36:21,920 --> 01:36:23,920 debería estar al mismo nivel 2557 01:36:23,920 --> 01:36:25,920 y 2558 01:36:25,920 --> 01:36:27,920 se puede llamar en cualquier momento de esta forma 2559 01:36:27,920 --> 01:36:29,920 poniendo su nombre y los paréntesis 2560 01:36:29,920 --> 01:36:31,920 ¿qué tal? 2561 01:36:31,920 --> 01:36:33,920 ¿hasta aquí qué tal vais? 2562 01:36:35,920 --> 01:36:37,920 ¿se entiende 2563 01:36:37,920 --> 01:36:39,920 todo esto? 2564 01:36:41,920 --> 01:36:43,920 vale 2565 01:36:43,920 --> 01:36:45,920 más cosas 2566 01:36:45,920 --> 01:36:47,920 nos quedan como 10 minutillos 2567 01:36:47,920 --> 01:36:49,920 quiero apurar y explicar ciertas cosas 2568 01:36:49,920 --> 01:36:51,920 que son las típicas 2569 01:36:51,920 --> 01:36:53,920 cosas pequeñas 2570 01:36:53,920 --> 01:36:55,920 sí, por supuesto 2571 01:36:55,920 --> 01:36:57,920 tenéis el enunciado de la tarea 0 2572 01:36:57,920 --> 01:36:59,920 a lo mejor lo podéis intentar replicar vosotros 2573 01:36:59,920 --> 01:37:01,920 y se puede hacer esto 2574 01:37:01,920 --> 01:37:03,920 de 250 formas 2575 01:37:03,920 --> 01:37:05,920 porque al final la lógica puede ser al revés 2576 01:37:05,920 --> 01:37:07,920 si empieza diciendo si escudo es menor 2577 01:37:07,920 --> 01:37:09,920 que impacto y ya te cambia el orden de las condiciones 2578 01:37:09,920 --> 01:37:11,920 pero sí, sí 2579 01:37:11,920 --> 01:37:13,920 es practicarlo 2580 01:37:13,920 --> 01:37:15,920 por eso esta tarea es tan útil 2581 01:37:15,920 --> 01:37:17,920 en el sentido de ir poniendo 2582 01:37:17,920 --> 01:37:19,920 y todavía no hemos hecho lo del bucle 2583 01:37:19,920 --> 01:37:21,920 ni lo de los 2 segundos 2584 01:37:21,920 --> 01:37:23,920 que para eso habría que usar lo que se llaman corrutinas 2585 01:37:23,920 --> 01:37:25,920 que ya están explicadas en el tema 2 2586 01:37:25,920 --> 01:37:27,920 si no me equivoco, ya está abierto 2587 01:37:27,920 --> 01:37:29,920 ya son cosas complejillas 2588 01:37:29,920 --> 01:37:31,920 pero bueno, ya vais poco a poco viendo 2589 01:37:31,920 --> 01:37:33,920 cómo se van haciendo algunas cosas 2590 01:37:33,920 --> 01:37:35,920 importante 2591 01:37:35,920 --> 01:37:37,920 aquí ponía una condición, lo digo por si alguna vez 2592 01:37:37,920 --> 01:37:39,920 algo que os sugiero moderadamente 2593 01:37:39,920 --> 01:37:41,920 pero bueno, a veces puede venir bien 2594 01:37:41,920 --> 01:37:43,920 que no sepáis tirar para adelante 2595 01:37:43,920 --> 01:37:45,920 y se lo preguntéis a una inteligencia artificial 2596 01:37:45,920 --> 01:37:47,920 ¿cómo harías para hacer esto? 2597 01:37:47,920 --> 01:37:49,920 y os puede dar código 2598 01:37:49,920 --> 01:37:51,920 esto sí que lo recomiendo 2599 01:37:51,920 --> 01:37:53,920 o que estéis viendo la documentación con ejemplos 2600 01:37:53,920 --> 01:37:55,920 en algunos momentos puede aparecer 2601 01:37:55,920 --> 01:37:57,920 un booleano que en vez de poner vivo 2602 01:37:57,920 --> 01:37:59,920 igual a true, si está vivo 2603 01:37:59,920 --> 01:38:01,920 si simplemente pone vivo 2604 01:38:01,920 --> 01:38:03,920 como lo que está buscando es que se cumplan 2605 01:38:03,920 --> 01:38:05,920 estas condiciones, esto significa que vivo 2606 01:38:05,920 --> 01:38:07,920 sea true, si no, no se cumple la condición 2607 01:38:07,920 --> 01:38:09,920 cuando es falso 2608 01:38:09,920 --> 01:38:11,920 sí que hay que especificarlo 2609 01:38:11,920 --> 01:38:13,920 pero si solo pone la palabra de una variable 2610 01:38:13,920 --> 01:38:15,920 y es booleana, significa que si eso es true 2611 01:38:15,920 --> 01:38:17,920 pues adelante, se ejecuta 2612 01:38:17,920 --> 01:38:19,920 es exactamente lo mismo poner esto 2613 01:38:19,920 --> 01:38:21,920 que poner esto 2614 01:38:21,920 --> 01:38:23,920 y antes os he dicho 2615 01:38:23,920 --> 01:38:25,920 que está el operador 2616 01:38:25,920 --> 01:38:27,920 para invertir la condición 2617 01:38:27,920 --> 01:38:29,920 en vez de decir es igual a 2618 01:38:29,920 --> 01:38:31,920 es contrario, es diferente, lo opuesto a 2619 01:38:31,920 --> 01:38:33,920 con esta exclamación 2620 01:38:33,920 --> 01:38:35,920 hay otra forma 2621 01:38:35,920 --> 01:38:37,920 de decir que esto es 2622 01:38:39,920 --> 01:38:41,920 hay otra forma de decir que esto es 2623 01:38:41,920 --> 01:38:43,920 igual a falso 2624 01:38:43,920 --> 01:38:45,920 aquí he dicho que si lo dejo así escrito 2625 01:38:45,920 --> 01:38:47,920 es exactamente lo mismo 2626 01:38:47,920 --> 01:38:49,920 y para decir que algo es igual a falso 2627 01:38:49,920 --> 01:38:51,920 lo digo porque los booleanos se usan tanto 2628 01:38:51,920 --> 01:38:53,920 que es conveniente hacernos a la idea 2629 01:38:53,920 --> 01:38:55,920 de que existe esto 2630 01:38:55,920 --> 01:38:57,920 en vez de decir es igual a falso 2631 01:38:57,920 --> 01:38:59,920 si alguna vez encontráis 2632 01:38:59,920 --> 01:39:01,920 que una variable booleana tiene esta exclamación 2633 01:39:01,920 --> 01:39:03,920 por delante, significa que es lo contrario 2634 01:39:03,920 --> 01:39:05,920 a que se esté dando esto 2635 01:39:07,920 --> 01:39:09,920 no está vivo, vivo no es falso 2636 01:39:09,920 --> 01:39:11,920 es lo opuesto 2637 01:39:11,920 --> 01:39:13,920 esto significa que esta variable 2638 01:39:13,920 --> 01:39:15,920 si esta variable es falsa 2639 01:39:15,920 --> 01:39:17,920 pues se ejecuta 2640 01:39:17,920 --> 01:39:19,920 sería exactamente igual 2641 01:39:19,920 --> 01:39:21,920 es decir 2642 01:39:23,920 --> 01:39:25,920 vivo igual a falso 2643 01:39:27,920 --> 01:39:29,920 es similar a 2644 01:39:31,920 --> 01:39:33,920 vivo 2645 01:39:35,920 --> 01:39:37,920 y aquí lo mismo, si no se pone nada 2646 01:39:37,920 --> 01:39:39,920 es igual 2647 01:39:39,920 --> 01:39:41,920 más cosas 2648 01:39:41,920 --> 01:39:43,920 cuando en el momento que morimos 2649 01:39:43,920 --> 01:39:45,920 decimos que vivo pasa a ser falso 2650 01:39:45,920 --> 01:39:47,920 hay otra operación que en ocasiones 2651 01:39:47,920 --> 01:39:49,920 es fundamental 2652 01:39:49,920 --> 01:39:51,920 que es invertir el booleano 2653 01:39:51,920 --> 01:39:53,920 aquí impepinablemente estamos diciendo 2654 01:39:53,920 --> 01:39:55,920 que vivo ya venga siendo 2655 01:39:55,920 --> 01:39:57,920 verdadero o falso 2656 01:39:57,920 --> 01:39:59,920 que en este momento pasa a ser falso 2657 01:39:59,920 --> 01:40:01,920 tenemos una acción que es 2658 01:40:01,920 --> 01:40:03,920 dar a un interruptor 2659 01:40:03,920 --> 01:40:05,920 cuando das a un interruptor 2660 01:40:05,920 --> 01:40:07,920 imaginaos un Resident Evil 2661 01:40:07,920 --> 01:40:09,920 que os acercáis a una puerta 2662 01:40:09,920 --> 01:40:11,920 y podéis encender y apagar la luz 2663 01:40:11,920 --> 01:40:13,920 y usáis el método 2664 01:40:13,920 --> 01:40:15,920 conmutador luz 2665 01:40:15,920 --> 01:40:17,920 hacéis un método 2666 01:40:17,920 --> 01:40:19,920 que guarde dentro conmutador luz 2667 01:40:19,920 --> 01:40:21,920 y que se encienda o apague la luz 2668 01:40:21,920 --> 01:40:23,920 va en base 2669 01:40:23,920 --> 01:40:25,920 a que haya una booleana 2670 01:40:25,920 --> 01:40:27,920 que sea verdadera o falsa 2671 01:40:27,920 --> 01:40:29,920 podemos reciclar el mismo 2672 01:40:29,920 --> 01:40:31,920 el mismo 2673 01:40:31,920 --> 01:40:33,920 método 2674 01:40:33,920 --> 01:40:35,920 si lo que hacemos en vez de decir que sea vivo 2675 01:40:35,920 --> 01:40:37,920 pasa a ser falso impepinablemente 2676 01:40:37,920 --> 01:40:39,920 si delante de la asignación 2677 01:40:39,920 --> 01:40:41,920 de lo siguiente ponemos la exclamación 2678 01:40:41,920 --> 01:40:43,920 me explico 2679 01:40:43,920 --> 01:40:45,920 si yo cojo vivo 2680 01:40:45,920 --> 01:40:47,920 y le digo que pasa a valer esto 2681 01:40:47,920 --> 01:40:49,920 significará que si vivo venía siendo verdadero 2682 01:40:49,920 --> 01:40:51,920 pasa a ser falso 2683 01:40:51,920 --> 01:40:53,920 y si venía siendo falso 2684 01:40:53,920 --> 01:40:55,920 pase a ser cierto 2685 01:40:55,920 --> 01:40:57,920 aquí siempre nos interesa 2686 01:40:57,920 --> 01:40:59,920 porque igual en algún momento lo habíamos dejado falso 2687 01:40:59,920 --> 01:41:01,920 y de pronto revivimos en el momento 2688 01:41:01,920 --> 01:41:03,920 que llega a ser cero 2689 01:41:03,920 --> 01:41:05,920 lo cual no tendría ningún sentido dentro de la lógica 2690 01:41:05,920 --> 01:41:07,920 de que cuando llegamos a cero pase tal cosa 2691 01:41:07,920 --> 01:41:09,920 entonces aquí siempre nos interesa que si se da esta condición 2692 01:41:09,920 --> 01:41:11,920 de las vidas a cero 2693 01:41:11,920 --> 01:41:13,920 pues pasa a ser cero 2694 01:41:13,920 --> 01:41:15,920 pero en un conmutador a lo mejor tenemos la acción 2695 01:41:15,920 --> 01:41:17,920 intercambiar luz 2696 01:41:17,920 --> 01:41:19,920 pues con esto vamos 2697 01:41:19,920 --> 01:41:21,920 pasando de una booleana 2698 01:41:21,920 --> 01:41:23,920 a otra 2699 01:41:23,920 --> 01:41:25,920 la condición es que si encendido es verdadero 2700 01:41:25,920 --> 01:41:27,920 se ejecuten 2701 01:41:27,920 --> 01:41:29,920 o si no es verdadero 2702 01:41:29,920 --> 01:41:31,920 pasa a ser falso 2703 01:41:31,920 --> 01:41:33,920 pues no se ejecuten 2704 01:41:33,920 --> 01:41:35,920 un poco lo mismo que hemos hecho aquí 2705 01:41:35,920 --> 01:41:37,920 con esta lógica 2706 01:41:37,920 --> 01:41:39,920 que no es solo pulsar la tecla asignada 2707 01:41:39,920 --> 01:41:41,920 sino que aparte se da otra condición 2708 01:41:41,920 --> 01:41:43,920 de que un semaforito 2709 01:41:43,920 --> 01:41:45,920 está activo o no 2710 01:41:45,920 --> 01:41:47,920 a veces no sé si os ayudo con lo de semaforitos 2711 01:41:47,920 --> 01:41:49,920 y cajas pero yo creo que 2712 01:41:49,920 --> 01:41:51,920 viendo esos símbolos es más sencillo 2713 01:41:51,920 --> 01:41:53,920 de todo 2714 01:41:53,920 --> 01:41:55,920 y paso a 2715 01:41:55,920 --> 01:41:57,920 para ir cerrando un poco 2716 01:41:57,920 --> 01:41:59,920 si yo cojo 2717 01:41:59,920 --> 01:42:01,920 voy a coger 2718 01:42:01,920 --> 01:42:03,920 una variable 2719 01:42:03,920 --> 01:42:05,920 mira vamos a hacerlo 2720 01:42:05,920 --> 01:42:07,920 de otra forma 2721 01:42:07,920 --> 01:42:09,920 si yo aquí durante el update 2722 01:42:09,920 --> 01:42:11,920 creo otro método 2723 01:42:11,920 --> 01:42:13,920 que se llame conmutar 2724 01:42:13,920 --> 01:42:15,920 esto no tiene nada que ver 2725 01:42:15,920 --> 01:42:17,920 con el juego de la nave pero bueno 2726 01:42:17,920 --> 01:42:19,920 yo estoy llamando a un método 2727 01:42:19,920 --> 01:42:21,920 que se llama 2728 01:42:21,920 --> 01:42:23,920 tabulo 2729 01:42:23,920 --> 01:42:25,920 que se llama conmutar y da fallo 2730 01:42:25,920 --> 01:42:27,920 por una razón muy simple que es que 2731 01:42:27,920 --> 01:42:29,920 no he creado ningún método 2732 01:42:29,920 --> 01:42:31,920 llamado conmutar, si yo bajo y digo 2733 01:42:31,920 --> 01:42:33,920 al mismo nivel que el resto de métodos 2734 01:42:33,920 --> 01:42:35,920 voy a hacer un void 2735 01:42:35,920 --> 01:42:37,920 porque va a recopilar código y ya está 2736 01:42:37,920 --> 01:42:39,920 va a pasar por ese código, va a hacer como un resumen de comedio 2737 01:42:39,920 --> 01:42:41,920 lo llamo conmutar 2738 01:42:41,920 --> 01:42:43,920 lo creo aquí con las llaves para meter 2739 01:42:43,920 --> 01:42:45,920 veis que ya no hay ningún fallo 2740 01:42:45,920 --> 01:42:47,920 entonces ahora en el update se está conmutando 2741 01:42:47,920 --> 01:42:49,920 está todo el rato mirando 2742 01:42:49,920 --> 01:42:51,920 a ver que hay aquí dentro 2743 01:42:51,920 --> 01:42:53,920 y si yo ahora mismo digo 2744 01:42:53,920 --> 01:42:55,920 en conmutar quiero que 2745 01:42:55,920 --> 01:42:57,920 vamos a poner una variable nueva 2746 01:42:57,920 --> 01:42:59,920 para este ejemplo, la creo como global 2747 01:42:59,920 --> 01:43:01,920 que sea boolean 2748 01:43:01,920 --> 01:43:03,920 encendido 2749 01:43:03,920 --> 01:43:05,920 pues vale 2750 01:43:05,920 --> 01:43:07,920 tengo este boolean encendido y cuando arranca el juego 2751 01:43:07,920 --> 01:43:09,920 imaginaos que es que la nave 2752 01:43:09,920 --> 01:43:11,920 espacial hay que arrancarla 2753 01:43:11,920 --> 01:43:13,920 y cuando empieza el juego 2754 01:43:13,920 --> 01:43:15,920 directamente 2755 01:43:15,920 --> 01:43:17,920 por defecto ya aparece 2756 01:43:17,920 --> 01:43:19,920 encendida, por tanto es true 2757 01:43:19,920 --> 01:43:21,920 true 2758 01:43:21,920 --> 01:43:23,920 lo lógico es poner palabras 2759 01:43:23,920 --> 01:43:25,920 o frases que digan, ¿esto se está cumpliendo? 2760 01:43:25,920 --> 01:43:27,920 sí, pues encendido, pues true 2761 01:43:27,920 --> 01:43:29,920 pues encendido, true 2762 01:43:29,920 --> 01:43:31,920 ojo que si no declaráis nada, no inicializáis 2763 01:43:31,920 --> 01:43:33,920 en ningún momento, ya os dije que por defecto 2764 01:43:33,920 --> 01:43:35,920 las booleanas valían falso 2765 01:43:35,920 --> 01:43:37,920 por defecto, por tanto por defecto 2766 01:43:37,920 --> 01:43:39,920 si yo no pusiera nada aquí y luego llamo a encendido 2767 01:43:39,920 --> 01:43:41,920 eso valdría falso 2768 01:43:41,920 --> 01:43:43,920 pero aquí lo estamos inicializando en encendido 2769 01:43:43,920 --> 01:43:45,920 entonces 2770 01:43:45,920 --> 01:43:47,920 lo que voy a hacer es 2771 01:43:47,920 --> 01:43:49,920 que cada fotograma, cuando yo 2772 01:43:49,920 --> 01:43:51,920 pulse 2773 01:43:51,920 --> 01:43:53,920 si pulso la tecla 2774 01:43:53,920 --> 01:43:55,920 a ver, copio un poco, bueno lo escribo para 2775 01:43:55,920 --> 01:43:57,920 que quede más claro 2776 01:43:57,920 --> 01:43:59,920 yo siempre cuando escribo un condicional empiezo 2777 01:43:59,920 --> 01:44:01,920 escribiendo esto y luego ya voy 2778 01:44:01,920 --> 01:44:03,920 rellenando, digo las llaves, pues aquí voy 2779 01:44:03,920 --> 01:44:05,920 a meter lo que quiero que se realice 2780 01:44:05,920 --> 01:44:07,920 ya lo tengo ahí, el comutar esperando 2781 01:44:07,920 --> 01:44:09,920 y aquí la condición es 2782 01:44:09,920 --> 01:44:11,920 si yo 2783 01:44:11,920 --> 01:44:13,920 hago un input D, que pulso una vez 2784 01:44:13,920 --> 01:44:15,920 una tecla, get key down 2785 01:44:15,920 --> 01:44:17,920 y esa tecla, pues voy a 2786 01:44:17,920 --> 01:44:19,920 decir que sea la tecla 2787 01:44:21,920 --> 01:44:23,920 pues yo que sé, aquí con 2788 01:44:23,920 --> 01:44:25,920 keycode vamos a ir, pues por ejemplo 2789 01:44:25,920 --> 01:44:27,920 la tecla 2790 01:44:27,920 --> 01:44:29,920 la J 2791 01:44:29,920 --> 01:44:31,920 no sé por qué, o la C de 2792 01:44:31,920 --> 01:44:33,920 comutar, le doy aquí 2793 01:44:33,920 --> 01:44:35,920 y ahí está, cada vez que le de a la C 2794 01:44:35,920 --> 01:44:37,920 no hay otra condición que impida que se ejecute o no 2795 01:44:37,920 --> 01:44:39,920 se va a producir lo que 2796 01:44:39,920 --> 01:44:41,920 viene en comutar 2797 01:44:41,920 --> 01:44:43,920 y aparte, bueno, sí 2798 01:44:43,920 --> 01:44:45,920 aquí se va a producir lo de comutar y entonces 2799 01:44:45,920 --> 01:44:47,920 yo aquí lo que voy a decir es 2800 01:44:47,920 --> 01:44:49,920 encendido 2801 01:44:49,920 --> 01:44:51,920 venga valiendo lo que venga 2802 01:44:51,920 --> 01:44:53,920 pues voy a decir que pasa a ser 2803 01:44:53,920 --> 01:44:55,920 lo contrario, la booleana, entonces 2804 01:44:55,920 --> 01:44:57,920 cada vez que le de, igual que pasa con el interruptor 2805 01:44:57,920 --> 01:44:59,920 o lo enciendes o lo apagas cada vez que le pulsas 2806 01:44:59,920 --> 01:45:01,920 y para ir comprobando cuánto vale 2807 01:45:01,920 --> 01:45:03,920 en cada momento, según cambio la 2808 01:45:03,920 --> 01:45:05,920 asignación de qué vale, pues voy a decir 2809 01:45:05,920 --> 01:45:07,920 un debug log 2810 01:45:09,920 --> 01:45:11,920 debug 2811 01:45:11,920 --> 01:45:13,920 no quiere ayudarme, ahí 2812 01:45:13,920 --> 01:45:15,920 debug log que me enseñe lo que vale 2813 01:45:15,920 --> 01:45:17,920 encendido, vale, entonces 2814 01:45:17,920 --> 01:45:19,920 cada vez que yo le de a esa tecla C 2815 01:45:19,920 --> 01:45:21,920 encendido pasará a ser lo opuesto 2816 01:45:21,920 --> 01:45:23,920 y lo veremos en encendido, vale, y lo veremos 2817 01:45:23,920 --> 01:45:25,920 como true o false, recordad que esto 2818 01:45:25,920 --> 01:45:27,920 vuelvo a ir al comienzo 2819 01:45:27,920 --> 01:45:29,920 es una booleana, solo alberga esta caja 2820 01:45:29,920 --> 01:45:31,920 verdaderos o falsos, vale, entonces 2821 01:45:31,920 --> 01:45:33,920 guardo, voy al juego 2822 01:45:33,920 --> 01:45:35,920 bueno, me va a poner 2823 01:45:35,920 --> 01:45:37,920 todo el inicio de 2824 01:45:37,920 --> 01:45:39,920 el escudo de la nave tiene 100 2825 01:45:39,920 --> 01:45:41,920 ahora mismo no nos da igual, y cuando yo le 2826 01:45:41,920 --> 01:45:43,920 de a C, según le de a C 2827 01:45:43,920 --> 01:45:45,920 vuelvo a dar aquí 2828 01:45:45,920 --> 01:45:47,920 dice falso, empieza como 2829 01:45:47,920 --> 01:45:49,920 verdadero y la primera vez que le he dado es falso 2830 01:45:49,920 --> 01:45:51,920 vuelvo a dar a C, verdadero, falso 2831 01:45:51,920 --> 01:45:53,920 verdadero, falso, vale 2832 01:45:53,920 --> 01:45:55,920 esto es muy útil para muchas 2833 01:45:55,920 --> 01:45:57,920 acciones, para ir intercambiando lo que 2834 01:45:57,920 --> 01:45:59,920 haces, pues activo o desactivo 2835 01:45:59,920 --> 01:46:01,920 el arma, pues habrá una tecla que lo que hace 2836 01:46:01,920 --> 01:46:03,920 es, con una operación parecida 2837 01:46:03,920 --> 01:46:05,920 a esta, invertir 2838 01:46:05,920 --> 01:46:07,920 el modo en el que venía 2839 01:46:07,920 --> 01:46:09,920 vale, ¿se entiende? 2840 01:46:09,920 --> 01:46:11,920 si quisiéramos ser más 2841 01:46:11,920 --> 01:46:13,920 correctos 2842 01:46:13,920 --> 01:46:15,920 pues si queremos informar al 2843 01:46:15,920 --> 01:46:17,920 al 2844 01:46:17,920 --> 01:46:19,920 usuario, pues aquí habría que decir 2845 01:46:19,920 --> 01:46:21,920 como empieza 2846 01:46:21,920 --> 01:46:23,920 el conmutador 2847 01:46:23,920 --> 01:46:25,920 está 2848 01:46:25,920 --> 01:46:27,920 aquí te digo 2849 01:46:27,920 --> 01:46:29,920 encendido, y dirá true o false 2850 01:46:29,920 --> 01:46:31,920 vale, y aquí en cada 2851 01:46:31,920 --> 01:46:33,920 operación, pues en vez de poner 2852 01:46:33,920 --> 01:46:35,920 apelo 2853 01:46:35,920 --> 01:46:37,920 encendido o falso, pues 2854 01:46:37,920 --> 01:46:39,920 ponemos el conmutador 2855 01:46:39,920 --> 01:46:41,920 pasa 2856 01:46:41,920 --> 01:46:43,920 a estar, vale 2857 01:46:43,920 --> 01:46:45,920 concatenamos, e igual que 2858 01:46:45,920 --> 01:46:47,920 con los números, pues ahí pondrá 2859 01:46:47,920 --> 01:46:49,920 true o false 2860 01:46:49,920 --> 01:46:51,920 como un texto, entonces 2861 01:46:51,920 --> 01:46:53,920 empieza el juego, y empieza y te dice, oye 2862 01:46:53,920 --> 01:46:55,920 el conmutador está true, vale 2863 01:46:55,920 --> 01:46:57,920 pues le doy a la C, oye el conmutador 2864 01:46:57,920 --> 01:46:59,920 pasa a estar false, true, cada vez que le estoy 2865 01:46:59,920 --> 01:47:01,920 dando, vale, se va invirtiendo 2866 01:47:01,920 --> 01:47:03,920 ¿sí? 2867 01:47:05,920 --> 01:47:07,920 bueno, pues por hoy creo que está bien 2868 01:47:07,920 --> 01:47:09,920 ya podéis 2869 01:47:09,920 --> 01:47:11,920 también 2870 01:47:11,920 --> 01:47:13,920 incluso intentar 2871 01:47:13,920 --> 01:47:15,920 mientras vais leyendo el tema 2 2872 01:47:15,920 --> 01:47:17,920 intentar ir probando más tipos 2873 01:47:17,920 --> 01:47:19,920 de inputs, vale, aquí he usado lo del teclado 2874 01:47:19,920 --> 01:47:21,920 pero se van explicando más en el tema 2875 01:47:21,920 --> 01:47:23,920 pues en vez de, si tenéis 2876 01:47:23,920 --> 01:47:25,920 el ratón, pues cuando vais pulsando 2877 01:47:25,920 --> 01:47:27,920 al botón 2878 01:47:27,920 --> 01:47:29,920 izquierdo, pues que ocurra lo que ocurra 2879 01:47:29,920 --> 01:47:31,920 y vais probando más inputs, podéis 2880 01:47:31,920 --> 01:47:33,920 ya ir probando más formas de interactuar 2881 01:47:33,920 --> 01:47:35,920 podéis hacer el bucle 2882 01:47:35,920 --> 01:47:37,920 for, que sí que lo explica 2883 01:47:37,920 --> 01:47:39,920 se explica en el tema 0 2884 01:47:39,920 --> 01:47:41,920 sino ya un día lo veremos, vale 2885 01:47:41,920 --> 01:47:43,920 podéis ir creando ya métodos 2886 01:47:43,920 --> 01:47:45,920 esto lo hemos aprendido hoy 2887 01:47:45,920 --> 01:47:47,920 podéis dar otros números aleatorios 2888 01:47:47,920 --> 01:47:49,920 también, vale, se pueden hacer 2889 01:47:49,920 --> 01:47:51,920 bastantes cosillas ya, hay videojuegos 2890 01:47:51,920 --> 01:47:53,920 así de simples que funcionan 2891 01:47:53,920 --> 01:47:55,920 así que mira, ya podríamos decir 2892 01:47:55,920 --> 01:47:57,920 hasta que hemos hecho el 2893 01:47:57,920 --> 01:47:59,920 el primer videojuego 2894 01:47:59,920 --> 01:48:01,920 bueno chicos, si hay alguna 2895 01:48:01,920 --> 01:48:03,920 duda de los contenidos, de la tarea de 2896 01:48:03,920 --> 01:48:05,920 del tema 2, que os sugiero 2897 01:48:05,920 --> 01:48:07,920 mucho ya que os vayáis intentando 2898 01:48:07,920 --> 01:48:09,920 pegar con ella 2899 01:48:09,920 --> 01:48:11,920 ven los videos de Álvaro, que son 2900 01:48:11,920 --> 01:48:13,920 lo que explica Álvaro en los videos 2901 01:48:13,920 --> 01:48:15,920 entra como materia de examen 2902 01:48:15,920 --> 01:48:17,920 también, vale, es tan material 2903 01:48:17,920 --> 01:48:19,920 como lo escrito