1 00:00:00,000 --> 00:00:06,000 Bueno, vamos a ver cómo se hace la segunda de las tareas de Scratch, ¿vale? 2 00:00:06,000 --> 00:00:13,000 Para la segunda de las tareas de Scratch vamos a usar una programación ramificada. 3 00:00:13,000 --> 00:00:20,000 Una programación ramificada se traduce en el uso de estos elementos que tenemos aquí. 4 00:00:20,000 --> 00:00:25,000 Si, si no, entonces, es decir, tenemos una condición 5 00:00:25,000 --> 00:00:29,000 que en un diagrama de flujo sería el rombito 6 00:00:29,000 --> 00:00:34,000 entonces, si se cumple la condición vamos a hacer unas determinadas cosas 7 00:00:34,000 --> 00:00:39,000 que no se cumple la condición, pues hacemos otras cosas, ¿vale? 8 00:00:39,000 --> 00:00:45,000 Para poder hacer el ejercicio también necesitamos un bucle 9 00:00:45,000 --> 00:00:48,000 pero es un bucle un poquito especial 10 00:00:48,000 --> 00:00:51,000 es un bucle especial que es el bucle por siempre 11 00:00:51,000 --> 00:00:56,000 por siempre desde el punto de vista de programación 12 00:00:56,000 --> 00:01:02,000 en realidad no es un bucle, es más una sentencia de control 13 00:01:02,000 --> 00:01:08,000 es una sentencia que lo que está haciendo es verificando en cada instante 14 00:01:08,000 --> 00:01:11,000 si se cumple una determinada condición 15 00:01:11,000 --> 00:01:18,000 y está imponiendo y obligando a que siempre se cumpla esa condición 16 00:01:18,000 --> 00:01:20,000 porque si no hay un error 17 00:01:20,000 --> 00:01:24,000 ¿Cuál es la diferencia entre usar por siempre o no por siempre? 18 00:01:24,000 --> 00:01:27,000 Pues la diferencia es que si no usamos el por siempre 19 00:01:27,000 --> 00:01:30,000 el programa no nos va a funcionar 20 00:01:30,000 --> 00:01:32,000 porque solo se ejecuta una vez 21 00:01:32,000 --> 00:01:37,000 y no va a estar testeando de forma continuada 22 00:01:37,000 --> 00:01:39,000 que se cumplan o no las condiciones 23 00:01:39,000 --> 00:01:45,000 entonces, aunque en teoría podría decirse que es un bucle 24 00:01:45,000 --> 00:01:48,000 en realidad lo que es es un lazo 25 00:01:48,000 --> 00:01:50,000 es un lazo de control 26 00:01:50,000 --> 00:01:54,000 lo que estamos es imponiendo un lazo cerrado de control 27 00:01:54,000 --> 00:01:58,000 y funciona como si fuese un lazo cerrado de control 28 00:01:58,000 --> 00:02:02,000 o sea, como un termostato, como este tipo de elementos 29 00:02:02,000 --> 00:02:07,000 lo que hace es verificar que siempre se están cumpliendo las condiciones 30 00:02:07,000 --> 00:02:10,000 y si no se cumpliera, pues se pararía el programa 31 00:02:10,000 --> 00:02:11,000 ¿Vale? 32 00:02:11,000 --> 00:02:16,000 Bueno, dicho esto vamos a ver cuáles son los elementos básicos 33 00:02:16,000 --> 00:02:19,000 de este ejercicio y en qué consiste 34 00:02:19,000 --> 00:02:24,000 Este ejercicio tiene dos fondos 35 00:02:24,000 --> 00:02:25,000 ¿Vale? 36 00:02:25,000 --> 00:02:27,000 El fondo, al igual que los sprites 37 00:02:27,000 --> 00:02:32,000 tienen código, apariencia o disfraces y sonidos 38 00:02:32,000 --> 00:02:37,000 En este caso, uno de ellos es uno que hemos escogido de la biblioteca 39 00:02:37,000 --> 00:02:39,000 que se puede hacer libre 40 00:02:39,000 --> 00:02:43,000 y el otro es el mandala que vosotros habéis creado con Inkscape 41 00:02:43,000 --> 00:02:47,000 Cuidado con las imágenes Inkscape 42 00:02:48,000 --> 00:02:51,000 Es necesario cambiarlas a PNG 43 00:02:51,000 --> 00:02:54,000 porque en su formato nativo que es el SVG 44 00:02:54,000 --> 00:02:56,000 no las admite Scratch 45 00:02:56,000 --> 00:03:01,000 Bueno, a lo mejor las admite pero no vais a poder trabajar con ellas bien 46 00:03:01,000 --> 00:03:03,000 ¿Vale? No se van a poder programar 47 00:03:03,000 --> 00:03:05,000 En cuanto a los sprites 48 00:03:05,000 --> 00:03:09,000 tenemos pues uno que podéis bajar de la biblioteca 49 00:03:09,000 --> 00:03:12,000 que en este caso tiene estos dos disfraces 50 00:03:12,000 --> 00:03:14,000 he escogido el gatito que se mueve 51 00:03:14,000 --> 00:03:16,000 la campana 52 00:03:16,000 --> 00:03:22,000 que lo importante o lo interesante es que tiene unos sonidos muy divertidos 53 00:03:22,000 --> 00:03:25,000 aunque no lo podéis apreciar en la clase 54 00:03:25,000 --> 00:03:31,000 y luego este de aquí es el personaje que habéis creado con Inkscape 55 00:03:31,000 --> 00:03:32,000 ¿Vale? 56 00:03:32,000 --> 00:03:35,000 Al igual que hemos hecho anteriormente con el monstruo 57 00:03:35,000 --> 00:03:38,000 podéis crear disfraces si os apetece 58 00:03:38,000 --> 00:03:40,000 no los vamos a necesitar, no los vamos a usar 59 00:03:40,000 --> 00:03:47,000 pero si alguien quiere crear disfraces de su personaje 60 00:03:47,000 --> 00:03:48,000 pues que los cree 61 00:03:48,000 --> 00:03:49,000 ¿Vale? 62 00:03:49,000 --> 00:03:50,000 ¿Vale? 63 00:03:50,000 --> 00:03:54,000 ¿En qué consiste el jueguecito? 64 00:03:54,000 --> 00:03:59,000 Bueno, pues el jueguecito consiste en que el gatito 65 00:03:59,000 --> 00:04:02,000 tiene que llegar a tocar la campana 66 00:04:02,000 --> 00:04:03,000 ¿Vale? 67 00:04:03,000 --> 00:04:05,000 Pero, pero 68 00:04:05,000 --> 00:04:08,000 esto es una especie de monstruito 69 00:04:08,000 --> 00:04:11,000 entonces cada vez que el gato toca el monstruito 70 00:04:11,000 --> 00:04:14,000 el gatito se puede mover para arriba, para abajo 71 00:04:14,000 --> 00:04:16,000 ya no, pero bueno 72 00:04:16,000 --> 00:04:18,000 cada vez que el gato toca uno de estos monstruitos 73 00:04:18,000 --> 00:04:20,000 vuelve a la posición inicial 74 00:04:20,000 --> 00:04:21,000 entonces ¿qué pasa? 75 00:04:21,000 --> 00:04:23,000 que los monstruitos se van como multiplicando 76 00:04:23,000 --> 00:04:26,000 entonces llega un momento en que hay tanto monstruito 77 00:04:26,000 --> 00:04:28,000 que el gato no se puede mover 78 00:04:28,000 --> 00:04:30,000 luego hay que ser un poco rápido 79 00:04:30,000 --> 00:04:32,000 para evitar pues lo que está pasando 80 00:04:32,000 --> 00:04:35,000 de ahora mismo ya el gato es imposible que llegue a tocar la campana 81 00:04:35,000 --> 00:04:37,000 porque siempre hay un monstruito con el que toca 82 00:04:37,000 --> 00:04:40,000 y siempre hay un monstruito que le hace volver a la posición inicial 83 00:04:40,000 --> 00:04:42,000 ¿Vale? 84 00:04:42,000 --> 00:04:44,000 Bueno, vamos a hacer un poquito de trampas 85 00:04:44,000 --> 00:04:47,000 y lo que vamos es, pues a evitar 86 00:04:47,000 --> 00:04:49,000 tocar la primera vez 87 00:04:49,000 --> 00:04:51,000 al, al 88 00:04:51,000 --> 00:04:53,000 al fantasma 89 00:04:53,000 --> 00:04:55,000 y llegar antes a la campana 90 00:04:57,000 --> 00:04:58,000 suena el sonido 91 00:04:58,000 --> 00:05:00,000 nos cambia 92 00:05:00,000 --> 00:05:02,000 el fondo 93 00:05:02,000 --> 00:05:04,000 y nos lleva a otro sitio y desaparece 94 00:05:04,000 --> 00:05:06,000 la campana 95 00:05:07,000 --> 00:05:09,000 y los fantasmitas 96 00:05:09,000 --> 00:05:10,000 ¿Vale? 97 00:05:10,000 --> 00:05:12,000 Esa es un poco la historia 98 00:05:12,000 --> 00:05:14,000 Entonces 99 00:05:16,000 --> 00:05:18,000 como de costumbre hay que empezar 100 00:05:18,000 --> 00:05:20,000 creando código inicial 101 00:05:20,000 --> 00:05:22,000 ¿Vale? 102 00:05:22,000 --> 00:05:24,000 Hay que escoger una posición 103 00:05:24,000 --> 00:05:26,000 para el gato y una apariencia 104 00:05:26,000 --> 00:05:28,000 ¿Vale? 105 00:05:28,000 --> 00:05:30,000 Para el gato 106 00:05:30,000 --> 00:05:32,000 para 107 00:05:32,000 --> 00:05:34,000 el 108 00:05:35,000 --> 00:05:37,000 para 109 00:05:37,000 --> 00:05:39,000 y para 110 00:05:39,000 --> 00:05:41,000 ¿Vale? 111 00:05:41,000 --> 00:05:43,000 Todos veis que tienen 112 00:05:43,000 --> 00:05:45,000 condiciones iniciales 113 00:05:45,000 --> 00:05:47,000 para el gato 114 00:05:47,000 --> 00:05:49,000 fantasmita y fondo 115 00:05:49,000 --> 00:05:51,000 de hecho si no las ponéis 116 00:05:51,000 --> 00:05:53,000 pues podéis tener problemas 117 00:05:53,000 --> 00:05:55,000 no pueda funcionar bien 118 00:05:55,000 --> 00:05:57,000 ¿Vale? 119 00:05:57,000 --> 00:05:59,000 Después, para el gato 120 00:05:59,000 --> 00:06:01,000 para el gato 121 00:06:01,000 --> 00:06:03,000 tenemos estas cuatro funciones 122 00:06:04,000 --> 00:06:06,000 que lo que van a hacer es que se mueva 123 00:06:08,000 --> 00:06:10,000 Inicializo, el gato se puede mover 124 00:06:10,000 --> 00:06:12,000 ahora ya no porque ha tocado con el 125 00:06:12,000 --> 00:06:14,000 el gato se mueve hacia delante 126 00:06:14,000 --> 00:06:16,000 hacia arriba, hacia abajo 127 00:06:16,000 --> 00:06:18,000 y hacia la izquierda 128 00:06:18,000 --> 00:06:20,000 si toca a borde 129 00:06:20,000 --> 00:06:22,000 ¿Vale? 130 00:06:22,000 --> 00:06:24,000 Tenemos que poner, veis que es fácil 131 00:06:24,000 --> 00:06:26,000 porque es simplemente 132 00:06:26,000 --> 00:06:28,000 apuntar una dirección que viene en ángulo 133 00:06:28,000 --> 00:06:30,000 0, 180, 90, 90 134 00:06:30,000 --> 00:06:32,000 y dar 10 pasos 135 00:06:32,000 --> 00:06:34,000 y bueno, para dar ese efecto 136 00:06:34,000 --> 00:06:36,000 de movimiento, de caminar 137 00:06:36,000 --> 00:06:38,000 le dais al siguiente disfraz 138 00:06:38,000 --> 00:06:40,000 ¿Veis? 139 00:06:40,000 --> 00:06:42,000 Así yo 140 00:06:48,000 --> 00:06:50,000 hago que se mueva para acá 141 00:06:50,000 --> 00:06:52,000 hago que se mueva hacia arriba 142 00:06:52,000 --> 00:06:54,000 hacia abajo, hacia la izquierda 143 00:06:54,000 --> 00:06:56,000 hacia la derecha 144 00:06:56,000 --> 00:06:58,000 ¿Veis? que lo controlo 145 00:06:58,000 --> 00:07:00,000 con el teclado 146 00:07:00,000 --> 00:07:02,000 ¿Vale? 147 00:07:02,000 --> 00:07:04,000 Este es el movimiento del gato 148 00:07:04,000 --> 00:07:06,000 en principio 149 00:07:06,000 --> 00:07:08,000 para darle movimiento al gol 150 00:07:08,000 --> 00:07:10,000 al gol uno, al fantasmita 151 00:07:10,000 --> 00:07:12,000 en este caso 152 00:07:12,000 --> 00:07:14,000 bueno, pues lo que hemos hecho ha sido 153 00:07:14,000 --> 00:07:16,000 deslizar 154 00:07:16,000 --> 00:07:18,000 a una posición aleatoria 155 00:07:18,000 --> 00:07:20,000 ¿Vale? 156 00:07:20,000 --> 00:07:22,000 Os aconsejo que pongáis 157 00:07:22,000 --> 00:07:24,000 en esperar, bueno si veis que 158 00:07:24,000 --> 00:07:26,000 un segundo es demasiado 159 00:07:26,000 --> 00:07:28,000 fácil, le ponéis 0,5 160 00:07:28,000 --> 00:07:30,000 ¿Vale? 161 00:07:30,000 --> 00:07:32,000 Y aquí ya empezamos con las condiciones 162 00:07:32,000 --> 00:07:34,000 los condicionales 163 00:07:34,000 --> 00:07:36,000 si tocando borde 164 00:07:36,000 --> 00:07:38,000 volvemos a la 165 00:07:38,000 --> 00:07:40,000 posición inicial 166 00:07:40,000 --> 00:07:42,000 si tocando gato 167 00:07:42,000 --> 00:07:44,000 hacemos esto que tenemos aquí 168 00:07:44,000 --> 00:07:46,000 ¿Esto qué es? Pues un clon 169 00:07:46,000 --> 00:07:48,000 es lo que habéis visto, simplemente 170 00:07:48,000 --> 00:07:50,000 se autocopia 171 00:07:50,000 --> 00:07:52,000 ¿Vale? Entonces creas un clon 172 00:07:52,000 --> 00:07:54,000 de ti mismo 173 00:07:54,000 --> 00:07:56,000 y se esconde, desaparece 174 00:07:56,000 --> 00:07:58,000 ¿Vale? Esto lo vamos a ver al final 175 00:07:58,000 --> 00:08:00,000 de si tocando campana 176 00:08:00,000 --> 00:08:02,000 ¿Por qué es esto? Bueno, la campana 177 00:08:02,000 --> 00:08:04,000 puede tener 178 00:08:04,000 --> 00:08:06,000 dos valores, la campana en realidad 179 00:08:06,000 --> 00:08:08,000 es una variable que tenemos aquí creada 180 00:08:08,000 --> 00:08:10,000 ¿Vale? Hemos creado una variable campana 181 00:08:10,000 --> 00:08:12,000 y puede tener dos valores 182 00:08:12,000 --> 00:08:14,000 que le haya 183 00:08:14,000 --> 00:08:16,000 llegado a tocar el gatito 184 00:08:16,000 --> 00:08:18,000 o no 185 00:08:18,000 --> 00:08:20,000 Entonces, 186 00:08:20,000 --> 00:08:22,000 pues es muy importante que aquí en campana 187 00:08:22,000 --> 00:08:24,000 en el código de la campana 188 00:08:24,000 --> 00:08:26,000 inicialicéis 189 00:08:26,000 --> 00:08:28,000 el valor a cero 190 00:08:28,000 --> 00:08:30,000 ¿Vale? 191 00:08:30,000 --> 00:08:32,000 Y ese valor tiene que estar inicializado 192 00:08:32,000 --> 00:08:34,000 en 193 00:08:34,000 --> 00:08:36,000 por lo menos en la campana 194 00:08:36,000 --> 00:08:38,000 y prácticamente en todos los sitios 195 00:08:38,000 --> 00:08:40,000 ¿Vale? Porque si no 196 00:08:40,000 --> 00:08:42,000 inicialicéis el valor a cero en la campana 197 00:08:42,000 --> 00:08:44,000 tampoco funciona 198 00:08:44,000 --> 00:08:46,000 ¿Vale? Entonces 199 00:08:46,000 --> 00:08:48,000 ¿Qué hacemos con el volumen? 200 00:08:48,000 --> 00:08:50,000 Si tocamos la campana 201 00:08:50,000 --> 00:08:52,000 pues hay que 202 00:08:52,000 --> 00:08:54,000 Si pasamos al siguiente fondo 203 00:08:54,000 --> 00:08:56,000 la campana se esconde 204 00:08:56,000 --> 00:08:58,000 ¿Vale? 205 00:08:58,000 --> 00:09:00,000 Entonces, tanto si toca 206 00:09:00,000 --> 00:09:02,000 al gato, o sea, si toca al gato 207 00:09:02,000 --> 00:09:04,000 se convierte en un 208 00:09:04,000 --> 00:09:06,000 se hace una autocopia 209 00:09:06,000 --> 00:09:08,000 que es esta que tenemos aquí 210 00:09:08,000 --> 00:09:10,000 Es un clon. ¿Y qué va a hacer el clon? 211 00:09:10,000 --> 00:09:12,000 Pues exactamente lo mismo que hace 212 00:09:12,000 --> 00:09:14,000 el original. Si toca 213 00:09:14,000 --> 00:09:16,000 a borde, pues va a la 214 00:09:16,000 --> 00:09:18,000 se desliza, si toca a borde va a la 215 00:09:18,000 --> 00:09:20,000 posición inicial, si toca a gato 216 00:09:20,000 --> 00:09:22,000 se autocopia 217 00:09:22,000 --> 00:09:24,000 y si ya ha sonado la campana 218 00:09:24,000 --> 00:09:26,000 desaparece 219 00:09:26,000 --> 00:09:28,000 ¿Vale? O sea 220 00:09:28,000 --> 00:09:30,000 esto es fácil, porque lo único 221 00:09:30,000 --> 00:09:32,000 es el tema de la autocopia 222 00:09:32,000 --> 00:09:34,000 pero vamos, y el que quiere mostrar y 223 00:09:34,000 --> 00:09:36,000 esconder, hay que tener cuidado 224 00:09:36,000 --> 00:09:38,000 porque puede suceder que si no 225 00:09:38,000 --> 00:09:40,000 lo hacéis bien, pues desaparezca 226 00:09:40,000 --> 00:09:42,000 uno de los personajes 227 00:09:42,000 --> 00:09:44,000 y no vuelve a aparecer 228 00:09:44,000 --> 00:09:46,000 y eso es porque no habéis puesto las condiciones iniciales 229 00:09:46,000 --> 00:09:48,000 Bueno, entonces 230 00:09:48,000 --> 00:09:50,000 tenemos el gato, tenemos 231 00:09:50,000 --> 00:09:52,000 el goron y la campana 232 00:09:52,000 --> 00:09:54,000 pues la campana, lo mismo 233 00:09:54,000 --> 00:09:56,000 como vamos a hacerla desaparecer al final 234 00:09:56,000 --> 00:09:58,000 pues mostramos 235 00:09:58,000 --> 00:10:00,000 ponemos la variable 236 00:10:00,000 --> 00:10:02,000 a cero, y si 237 00:10:02,000 --> 00:10:04,000 el gato lo ha tocado 238 00:10:04,000 --> 00:10:06,000 pues hacemos sonar 239 00:10:06,000 --> 00:10:08,000 la campana. Cambiamos 240 00:10:08,000 --> 00:10:10,000 el fondo y la escondemos 241 00:10:10,000 --> 00:10:12,000 y le damos a 242 00:10:12,000 --> 00:10:14,000 a la campana valor 1 para que el resto 243 00:10:14,000 --> 00:10:16,000 se esconde. ¿Se podría 244 00:10:16,000 --> 00:10:18,000 enviar mensaje? Sí 245 00:10:18,000 --> 00:10:20,000 o sea, otra forma a lo mejor es 246 00:10:20,000 --> 00:10:22,000 en lugar de crear esta variable 247 00:10:22,000 --> 00:10:24,000 es enviar un mensaje que 248 00:10:24,000 --> 00:10:26,000 cuando lo reciba 249 00:10:26,000 --> 00:10:28,000 los otros sprites 250 00:10:28,000 --> 00:10:30,000 desaparezcan. Bueno, yo 251 00:10:30,000 --> 00:10:32,000 en este caso no he querido crear un mensaje 252 00:10:32,000 --> 00:10:34,000 pero probadlo porque yo creo que 253 00:10:34,000 --> 00:10:36,000 eso también puede funcionar 254 00:10:36,000 --> 00:10:38,000 y el fondo 255 00:10:38,000 --> 00:10:40,000 pues ya os he dicho, el fondo no tiene más 256 00:10:40,000 --> 00:10:42,000 o sea, el fondo 257 00:10:46,000 --> 00:10:48,000 el fondo ya os he dicho que 258 00:10:48,000 --> 00:10:50,000 es un escenario y que el código es 259 00:10:50,000 --> 00:10:52,000 tan fácil como inicializar 260 00:10:52,000 --> 00:10:54,000 el escenario 261 00:10:54,000 --> 00:10:56,000 entonces 262 00:10:56,000 --> 00:10:58,000 sed cuidadosos 263 00:11:00,000 --> 00:11:02,000 hay veces que el 264 00:11:02,000 --> 00:11:04,000 clonado necesita que al menos 265 00:11:04,000 --> 00:11:06,000 esté en contacto 266 00:11:06,000 --> 00:11:08,000 unos segundos porque si no, no funciona 267 00:11:08,000 --> 00:11:10,000 no se clona. Necesita 268 00:11:10,000 --> 00:11:12,000 un tiempo de respuesta que se llama 269 00:11:12,000 --> 00:11:14,000 en control 270 00:11:14,000 --> 00:11:16,000 ¿Vale? Sed cuidadosos 271 00:11:16,000 --> 00:11:18,000 y bueno, claro, evidentemente 272 00:11:18,000 --> 00:11:20,000 pues fijaros que cuando 273 00:11:20,000 --> 00:11:22,000 como se creen demasiado 274 00:11:22,000 --> 00:11:24,000 hay que tener cuidado 275 00:11:24,000 --> 00:11:26,000 de que cuando toque 276 00:11:26,000 --> 00:11:28,000 al gollum hay que hacer que 277 00:11:28,000 --> 00:11:30,000 el gato vuelva a la posición inicial 278 00:11:30,000 --> 00:11:32,000 o así 279 00:11:32,000 --> 00:11:34,000 más que nada es por poner algún tipo 280 00:11:34,000 --> 00:11:36,000 de dificultad y veis que ahora 281 00:11:36,000 --> 00:11:38,000 es imposible, no va a llegar nunca a la campaña 282 00:11:40,000 --> 00:11:42,000 Bueno, a ver lo que 283 00:11:42,000 --> 00:11:44,000 os ocurre, si os ocurre 284 00:11:44,000 --> 00:11:46,000 alguna reinvención que pueda 285 00:11:46,000 --> 00:11:48,000 ser interesante, pues 286 00:11:48,000 --> 00:11:50,000 la comentáis y la incorporamos 287 00:11:50,000 --> 00:11:52,000 de momento el 288 00:11:52,000 --> 00:11:54,000 ejercicio es este 289 00:11:54,000 --> 00:11:56,000 ¿De acuerdo? Pues 290 00:11:56,000 --> 00:11:58,000 hasta la próxima