Curso de Scratch

vamos a realizar un primer ejercicio con scratch por ello lo primero que vamos a hacer es acudir a la propia web del proyecto así que abrimos un nuevo navegador web yo en este caso estoy usando el google chrome vamos a ir a la dirección web principal del proyecto que podemos encontrar en scratch punto y might y punto edu dentro de la web que nos ofrece la oportunidad de probar directamente scratch a través del navegador sin necesidad de crear un usuario ver ejemplos que otros desarrolladores han creado o bien unirse a scratch creando una cuenta de usuario en la cual podamos guardar por ejemplo nuestros proyectos esto es lo que haremos más adelante pero ahora de momento lo que más me interesa es empezar a probar y empezar a demostrar scratch con el menor esfuerzo posible así que lo que vamos a hacer es clic dentro de este enlace llamado pruébalo al hacer clic dentro de pruébalo veremos cómo aparece esta ventana que consiste en sí misma en la interfaz de usuario de scratch esta ventana con una ayuda contextual vamos a cerrarla con este botón de la equis y nos quedará la interfaz limpia del programa dentro de esta interfaz vamos a encontrar como siempre por aquí arriba a la izquierda el escenario donde revisaremos el resultado de nuestras acciones la librería de sprites y en la ventana de la derecha tenemos la parte de los bloques donde realmente vamos a programar el comportamiento de nuestros programas así que vamos a ver que esta parte derecha está dispuesta de la siguiente manera por una parte tenemos la pestaña de programas la pestaña donde podemos especificar cuál es el flujo de ejecución de nuestro programa los disfraces en este caso el disfraz para el sprite seleccionado que es el gato que viene por defecto y eventualmente el uso de sonidos por de pronto dado que ya tenemos un sprite cargado al empezar a trabajar vamos a obviar disfraces y sonidos y vamos a centrarnos de momento únicamente en la pestaña de programas dentro de esta pestaña de programas vamos a encontrar que tenemos diferentes secciones además con colores y cada una de las secciones tiene una serie de nodos en este caso me interesa empezar no por la por el primer bloque el bloque de movimiento sino por el bloque de eventos me interesa empezar por este bloque ya que realmente cuando empezamos un programa prácticamente siempre lo vamos a empezar a través de un evento suele decirse que scratch es un lenguaje de programación orientado a eventos y esto quiere decir que nada ocurre si un evento no lo lanza así que lo primero que necesitamos como digo es un evento tenemos diferentes eventos que son los que inician la acción un evento es al presionar bandera verde bandera verde es la bandera con la cual arrancamos nuestro programa con la cual nuestro programa se pone en movimiento veremos que este icono coincide con este icono que tenemos arriba en la parte superior derecha de la ventana de escenario tenemos otro evento que es al presionar una tecla la que sea otro evento que es al hacer clic en este objeto en el sprite es importante saber es importante darse cuenta que las acciones que voy a poner sobre acciones que ubicó dentro de este sprite esto es importante saberlo porque más adelante haremos programas y haremos juegos que tengan varios sprites y cada sprite podrá tener su propia lógica bueno el caso es que voy a empezar con este evento al presionar bandera verde pincho y arrastro para ubicarlo dentro de la ventana y ahora yo podría pulsar bandera verde para arrancar el juego el problema está en que realmente no ocurre nada porque no especificado qué es lo que ocurre a presionar la bandera verde por eso lo que ocurre en la pantalla es que al presionar simplemente a continuación la bandera se apaga se apaga como diciendo el programa ha finalizado así que el evento es lo que ocurre lo que dispara una acción pero ahora tengo que especificar cuál es la acción que va a ocurrir al pulsar la bandera verde las acciones son las que vamos a encontrar en el resto de secciones de esta interfaz de usuario por ejemplo vamos a ir hacia apariencia dentro de apariencia encontramos otro grupo completamente diferente de nodos y vamos a ver que tenemos un nodo que nos dice hello de momento durante dos segundos un nodo que dice simplemente hello un nodo con el que el personaje piensa algo un par de nodos para mostrar y esconder y otros nodos para cambiar los disfraces hablaremos de cómo cambiar y para qué sirve cambiar el disfraz de un sprite podemos cambiar efectos podemos cambiar tamaño en definitiva si dentro de eventos encontramos aquellos bloques que están pensados para responder a los eventos del usuario dentro de apariencia encontramos aquellos bloques que tienen algo que ver con el cambio de la apariencia visual del sprite con el que estamos trabajando en la pantalla así que vamos a seleccionar por ejemplo este primer bloque es decir hello durante dos segundos hacemos clic démonos cuenta que esta muesca prácticamente coincide con esta muestra que tenemos aquí y yo puedo hacer dos cosas o bien arrastro el nodo al espacio de trabajo o bien arrastro el nodo y directamente intento que coincida con el nodo de evento podemos observar que al acercar un nodo a otro mediante una línea blanca el propio programa me está sugiriendo que de hecho si suelto los dos nodos se van a conectar entre sí así que puedo trabajar realmente como quiera puedo directamente arrastrar un nodo y conectarlo a la anterior o bien puedo simplemente arrastrar el nodo del bloque como queramos llamarlo hacia la interfaz de usuario y más adelante lo puedo arrastrar el resultado finalmente es el mismo dentro de muchos nodos veremos que tenemos cuadros de texto con los cuales podemos interactuar esto quiere decir que el personaje no tiene por qué decir hello sino que hago clic y una vez que he hecho clic el programa me deja escribir voy a decir en este caso bienvenidos a scrats y quiero que el programa muestre este mensaje durante por ejemplo 5 segundos así que no solo he añadido un bloque de decir algo durante tantos segundos sino que además lo he personalizado una vez que lo he puesto voy a pulsar bandera verde y comprobamos como durante cinco segundos el personaje del juego dice bienvenidos scratch y cinco segundos después el mensaje se oculta y el programa termina el programa termina porque no le hemos dicho que tenga que suceder nada a continuación vamos a continuar este juego y para continuarlo usamos otro nodo que es el de pensar durante unos cuantos segundos el nodo de pensar como ahora vamos a ver es muy parecido al nodo de decir así que hago clic arrastro desde la ventana de bloques es decir desde esta ventana que estoy marcando en la pantalla hasta la ventana de trabajo como podemos ver lo que he hecho es arrastrar un nodo pero lo he soltado en el vacío y eso quiere decir que esto no es incorrecto el programa no va a fallar pero debo tener en cuenta que no hay nada no hay nadie que esté ejecutando este bloque y lo que va a ocurrir en este caso es que pulso play el personaje dice bienvenidos a scratch pero a continuación no se ejecuta el nodo de pensar no se ejecuta porque no está conectado a ninguna parte así que es posible dejar bloques sueltos por la pantalla pero no es demasiado recomendable más que nada porque no se van a ejecutar selecciona este bloque pincho arrastro y lo colocó a continuación del nodo anterior continuación del bloque anterior en este caso voy a decir voy a pensar debes pulsar las teclas de dirección para que dirección con acento lo que queramos para que el personaje se mueva y esto quiero que ocurra durante 5 segundos así que ahora si pulsamos de nuevo bandera verde el personaje dice bienvenidos a scratch durante 5 segundos y a continuación dice debes pulsar las teclas de dirección para que el personaje se mueva lo dice durante 5 segundos lo piensa durante 5 segundos y a continuación una vez más el programa finaliza así que ya tenemos un pequeño mini programa en el cual nuestro personaje está empezando a realizar acciones lo que ocurre ahora en este caso es que el personaje está como diría yo ejecutando las transacciones una continuación de la otra y a mí lo que me gustaría es que hubiera un cierto retraso hubiera una cierta pausa entre un mensaje y otro esta pausa la podemos encontrar dentro del grupo control el grupo control es un grupo específicamente pensado para controlar el flujo de la ejecución de un programa este es uno de los apartados más complejos de scratch pero sin embargo es uno de los apartados más útiles en este caso vamos a empezar con el bloque más sencillo de todos que es el bloque de esperar x segundos así que pulso y arrastro este bloque quiero esperar por ejemplo 5 segundos y a continuación voy a insertar este bloque en el medio de los otros bloques por ejemplo este esperar voy a ponerlo en el medio de los dos primeros bloques y vemos que al presionar bandera verde en primer lugar esperamos 5 segundos esto quiere decir que no ejecutó directamente este bloque sino que esperó 5 segundos antes de mostrarlo voy a volver a esperar vuelvo a poner 5 segundos y pincho y arrastro este bloque hacia la mitad de los dos bloques morados o azules de es decir y pensar vamos a comprobar la ejecución de este programa así que pulso bandera verde esperó cinco segundos y entonces el personaje dice bienvenidos a scratch durante cinco segundos luego el cuadro de diálogo se oculta durante otros cinco segundos y a continuación durante cinco segundos el personaje piensa debes pulsar las teclas de dirección para que el personaje se mueva y entonces como ya he llegado al final simplemente la ejecución del programa termina vemos que la filosofía de scratch en cuanto a la creación de programas es muy sencilla desde el punto de vista en que solo tenemos que ir colocando bloques unos detrás de otros asegurarnos que coinciden y una vez que tenemos esto realizado lo que hacemos es pulsar bandera verde para arrancar la ejecución del programa y comprobar cómo funciona además una vez que hemos conseguido realizar esta acción lo que podemos hacer es obviar los nodos y decir bueno quiero ver cómo se ve esto en pantalla completa quiero ver cómo verían mis jugadores en el juego porque mis jugadores es decir los usuarios que vayan a reproducir mi juego no van a ver los nodos van a ver directamente lo que ocurre en pantalla así que para eso está tecla que he pulsado como hemos visto es la tecla el botón que me permite maximizar y restaurar el juego si maximizó estoy viéndolo y experimentando lo tal y como lo van a jugar mis jugadores vemos cómo funciona exactamente igual bienvenidos a scratch cinco segundos de pausa y luego el otro mensaje para mover el personaje tienes que hacer no sé qué y no veo los nodos esto es como una simulación de ya el proyecto final cómo se vería al final y por supuesto cuando quiera volver a la edición y quiera seguir trabajando pulso ese ese botón pulso ese icono y vuelvo a trabajar ya tenemos una parte del programa realizado y a continuación vamos a proseguir añadiendo más acciones para este personaje ya tenemos que en nuestro personaje dice algo en la pantalla dice cosas en la pantalla pero probablemente esto no es especialmente entretenido desde el punto de vista de que simplemente dice algo y ya está así que yo quiero que el personaje haga más cosas voy a ir a eventos y voy a encontrar que además del evento de presionar bandera verde hay otros eventos que puedo utilizar por ejemplo un evento muy utilizado un evento muy muy útil es el evento de presionar una tecla del teclado así que voy a hacer clic voy a arrastrar este evento no voy a intentar meterlo encima a continuación del programa porque es un evento diferente es decir este es el evento que ocurre al presionar la tecla la tecla de flecha y flecha derecha entonces la elemento de presionar flecha derecha no tiene nada que ver con el evento de presionar la bandera verde entonces son eventos completamente diferentes y por tanto voy a parar el programa y por tanto deben ir completamente independientes queremos decir por lo tanto con esto que cada vez que hacemos un bloque de ejecución los bloques van a ir unidos a continuación pero un personaje un sprite puede tener perfectamente diferentes bloques de ejecución así que al presionar la tecla flecha derecha yo lo que quiero es que el personaje realmente se mueva hacia la derecha que el personaje se mueva evidentemente como podemos imaginar va a involucrar un bloque del apartado movimiento entonces hay un bloque llamado mover 10 pasos voy a hacer clic voy a arrastrar este bloque para ponerlo dentro del evento al presionar tecla flecha derecha voy a entrar dentro del juego voy a pulsar la flecha hacia la derecha y voy a comprobar como es cierto que cada vez que pulso la flecha hacia la derecha estoy pulsando la flecha hacia la derecha el personaje avanza 10 pasos de hecho los múltiples eventos se pueden combinar entre sí y no hay ningún problema para esto quiero decir con esto que selecciona el personaje hago clic en el personaje pincho y arrastro esto quiere decir que lo puedo pinchar y lo puedo arrastrar y lo puedo mover yo como quiera durante la través de la interfaz de usuario simplemente lo suelto por aquí a continuación pulso bandera verde ya sabemos que al pulsar bandera verde se va a ejecutar todo este bloque todo este conjunto de bloques que tenemos aquí pero además mientras se va ejecutando vamos a esperar a que salga el mensaje aquí yo puedo ir pulsando la flecha derecha para que el personaje se vaya moviendo y no hay ningún problema por ello como podemos imaginar como podemos imaginar voy a parar la ejecución del programa con la tecla de stop como podemos imaginar a continuación voy a crear cuatro bloques de eventos donde voy a utilizar por una parte la flecha derecha al continuar a continuación lanzó otro evento voy a trabajar con la flecha izquierda otro evento para la flecha hacia arriba y otro evento para la flecha hacia abajo con esto como podemos imaginar ya tenemos las cuatro teclas de dirección principales solucionadas y ahora me voy a volver a movimiento y tengo que ver qué es lo que quiero hacer realmente entonces quiero aquí tengo un problema desde el punto de vista de que yo quiero mover 10 pasos pero quiero mover 10 pasos en la dirección correcta así que antes de avanzar tengo que decirle al personaje cuál es la dirección a la que quiero ir para ello tenemos este nodo este bloque que es apuntar en dirección así que voy a arrastrarlo lo arrastró para intercalar lo al conjunto de bloques anteriores y ahora voy a desplegar este apartado desplegable que tengo dentro del bloque apuntar en dirección veo que está 90 a mi 90 puede no decirme mucho 90 que bueno son grados sexagesimal es pero qué quiere decir esto pues por suerte en este caso el programa nos indica el programa nos da una pista y dice si ponemos 90 quiere decir hacia la derecha si ponemos menos 90 quiere decir hacia la izquierda si poner 0 quiere decir hacia arriba y si pones 180 quiere decir hacia abajo debemos tener en cuenta como estamos viendo en la pantalla trabajamos con una rueda de 360 grados sexagesimal es pero esta rueda el cero no está a la derecha como suele ser muy frecuente en muchos sistemas de representación sino que el cero está arriba así que en definitiva flecha derecha volvemos a apuntar en dirección flecha izquierda hacia la izquierda es menos 90 flecha arriba arriba ya sabemos que es cero flecha abajo abajo hemos visto es 180 y a continuación podemos volver a poner mover 10 pasos con esto ya podríamos decir que tenemos nuestro personaje preparado para la acción tenemos nuestro personaje preparado para empezar a hacer cosas así que voy a pulsar el botón de arrancar el juego déjame que modifique este esperar voy a ponerlo a un segundo porque tardaba demasiado voy a pulsar la tecla de bandera tenemos que bienvenidos a scratch pero mientras que el personaje va hablando yo lo que puedo hacer es que puedo ir moviendo el personaje fijamos como con la tecla de mover hacia la izquierda hacia arriba hacia abajo el personaje se va moviendo el personaje se va moviendo la voy moviendo con las teclas y cada vez que se mueve puedo observar como va girando evidentemente según la dirección donde yo lo he ido moviendo solo por supuesto pues tiene que ocurrir no puedo finalizar este ejercicio sin hacer bastante hincapié en algo que va a ser muy interesante en todos los ejercicios que hagamos a partir de ahora que es el poner comentarios poner comentarios nos va a ayudar siempre a saber qué es lo que queremos hacer en este caso este ejercicio es el primero es muy sencillo evidentemente pero poner el comentario es algo que nos va a ayudar para más adelante cuando quizás abramos este proyecto dentro de un mes entre dedos dentro de un año acordarnos que es lo que hicimos los comentarios se ponen de la siguiente manera en primer lugar voy a hacer clic en uno de los nodos pero voy a hacer clic con el botón derecho del ratón al hacer clic con el botón derecho del ratón aparece una opción contextual llamada añadir comentario por supuesto puede duplicar bloque puedo borrar bloque pero yo lo que quiero ahora es añadir un comentario por ello hago clic aparece una etiqueta parece una pegatina aparece añade comentario aquí y yo voy a decir este bloque se ejecuta cuando el proyecto comienza este comentario lo puedo pinchar y lo puedo arrastrar ahí lo tenemos y además este comentario también lo puedo ocultar al ocultar lo puedo dejarlo por aquí y como podemos ver tengo un comentario escrito no ya en el lenguaje de scratch sino escrito en castellano en español es decir escrito en un lenguaje que cualquier ser humano puede entender es esto es interesante también debemos tener en cuenta que por supuesto el programa la ejecución del programa va a ignorar completamente cualquier comentario que nosotros pongamos esto quiere decir que los comentarios no son para la máquina sino que son para nosotros la recomendación es poner comentarios en cada bloque o en cada conjunto de bloques para acordarnos qué es lo que hacía ese conjunto de bloques insisto que este primer ejercicio es sencillo pero en definitiva es una buena costumbre que debemos cultivar para cuando hagamos proyectos más complejos esto es mover hacia la derecha y luego minimizamos mover hacia a la izquierda añadir comentarios mover hacia arriba botón derecho añadir comentario mover hacia abajo muy bien ya tenemos por aquí este bloque ya tenemos este ejercicio bastante más adelantado y ya hemos trabajado un rato con los nodos así que a continuación vamos a trabajar un poco con la estética en este caso todo el rato el personaje se ha estado moviendo sobre un fondo de color blanco entonces si nos fijamos en la parte inferior izquierda podremos comprobar que en sí está dividida en dos partes una que es el fondo y otra que es los objetos que circulan por delante de ese fondo dentro de este bloque de objetos es donde podremos introducir varios sprites más adelante en otros ejercicios más avanzados pero de momento lo que me interesa es ubicar un nuevo escenario para crear un nuevo escenario puedo hacerlo a partir de un fondo de biblioteca puedo pintarme mi nuevo fondo puedo subir un archivo desde el ordenador o puedo hacer una foto con la cámara que tenga ahora mismo conectada al ordenador de momento lo que me interesa es crear un fondo desde la biblioteca ya que la biblioteca contiene una grande cantidad de fondos que podemos utilizar puedo filtrar los por todas las categorías puedo ver solo interiores solo exteriores u otros fondos puedo ver solo fondos relacionados con castillos con ciudades fondos relacionados con el cielo con celebraciones con música y baile realeza espacio en definitiva puedo seleccionar el fondo que quiera no voy a filtrar nada voy a todos los fondos y voy a ver cuál nos puede venir bien para este primer ejercicio entonces bueno tengo un personaje y de tipo digamos cartoon de dibujos animados lo que voy a hacer es seleccionar un fondo por ejemplo éste tengo spotlight stage tengo una especie de escenario así que seleccionó esta imagen pulso ok y a continuación podemos comprobar como pues el fondo ya no es ese fondo blanco que teníamos hace un momento sino que es un fondo un poquito más interesante estábamos en fondos hace un momento así que podemos comprobar que en la parte derecha de la ventana de construcción hemos saltado a fondos recordamos que tenemos tres pestañas la pestaña del programa donde podemos ver que de repente todos nuestros nodos han desaparecido pero no debemos preocuparnos no debemos asustarnos y es que dice escenario seleccionado no existen bloques de movimiento para el escenario pero es que los bloques que hemos puesto no los hemos puesto sobre el escenario sino sobre el sprite entonces no pasa nada porque simplemente haciendo clic sobre el sprite del personaje vuelven a aparecer nuestros nodos esto quiere decir que cada elemento que pongamos dentro de scratch puede tener sus propios nodos y para ver los nodos de un elemento es necesario haber seleccionado ese elemento por supuesto el programa sigue funcionando igual que estaba funcionando hasta ahora esto quiere decir que pulso a bandera verde el personaje me dice lo que me tenga que decir y luego además siguen funcionando las teclas de dirección con las cuales puedo mover al personaje también por supuesto funciona la opción de pantalla de completa le doy a ejecutar y el personaje dice bienvenidos a scratch y aparte de decir bienvenidos scratch lo puedo mover con las flechas de dirección del teclado y las flechas de hacia arriba hacia abajo izquierda y derecha cuando quiera volver a la ventana de edición simplemente lo que tengo que hacer es volver a pulsar el icono y ya lo tengo ya tengo este primer ejercicio así que una vez que tengo este primer ejercicio lo que quiero es guardarlo guardarlo para no perder todos los cambios que he realizado tengo habrá un pequeño problema y es que no he creado una cuenta de usuario todavía entonces al no haber creado una cuenta de usuario todavía si yo por algún motivo cierro esta ventana va a ocurrir es que habré perdido todos los cambios todos los avances que haya realizado y evidentemente no quiero esto así que dentro de que no tengo todavía una cuenta de usuario por lo menos no voy a darle un nombre al proyecto que es primer proyecto o proyecto 1 por lo menos el programa me permite la opción de descargar a mi ordenador al no tener cuenta de usuario me dicen no te lo vamos a guardar pero tú te lo puedes guardar localmente en tu propio ordenador más adelante incluso evidentemente lo que puedo hacer es subir desde mi ordenador un proyecto que previamente haya guardado bueno pues voy a hacer clic dentro del enlace de descargar a tu computadora aparecen las carpetas que tengo dentro de mi ordenador a continuación seleccionamos una carpeta yo por ejemplo voy a seleccionar la carpeta de descargas tú puedes seleccionar la carpeta que quieras puedes guardar te el proyecto en escritorio en documentos en el disco cee donde sea que quieras guardar tu descarga yo dentro de descargas o si voy a pulsar botón derecho voy a crear nueva carpeta es decir pulso botón derecho sobre el espacio vacío elijo nuevo carpeta y voy a crear una carpeta llamada curso scratch hago doble clic para entrar dentro de esta carpeta y en este caso el proyecto se guarda con el mismo nombre por defecto con el que he titulado el proyecto podría ponerle un nombre diferente pero evidentemente no es recomendable el formato con el que guardo localmente proyectos de scratch es el formato sb2 por cierto decir que estamos trabajando con la versión 2 de scratch que a día de hoy es la última así que voy a pulsar sobre guardar tras lo cual ahora sí este ejercicio queda finalizado y queda finalizado con la tranquilidad de que sé que lo tengo guardado en el disco duro y por tanto yo sé que ahora mismo pues podría salir podría cerrar este navegador podría hacer lo que quisiera y el sistema no perdería los cambios fijémonos que ahora lo que voy a hacer es volver a la página de scratch punto multipunto edu y la propia web me dice cuidado es posible es posible que los cambios no se guarden es posible que los cambios se guarden pero yo sé que los acabo de guardar así que con toda la tranquilidad le puedo decir salir porque sé que me he guardado una copia de los cambios que he realizado ya hemos visto cómo crear un primer proyecto de scratch directamente probando es decir usando el vínculo de prueba luego desde la página oficial pero también hemos visto que no es la mejor manera de crear proyectos crear diferentes y varios proyectos con el portal ya que estamos obligados a descargarlos cuando acabamos esto puede resultar un poco incómodo evidentemente tiene mayores ventajas usar el enlace de unirse a scratch podemos unirnos de varias maneras podemos hacer clic en este enlace que tenemos que estoy marcando ahora mismo en la pantalla podemos también hacer clic dentro de este enlace que tenemos al menú superior si estábamos dentro de la versión de prueba también podemos unirnos haciendo clic aquí arriba donde pone join scratch en definitiva todos los enlaces nos van a llevar al mismo sitio con esto lo que vamos a hacer es crearnos un usuario y cuando nos hayamos creado un usuario cada vez que queramos entrar vemos que pulsar iniciar sesión para entrar al portal con nuestras credenciales es decir con el usuario que hayamos generado ahora de momento como no tengo todavía ningún usuario voy a hacer clic en un été a scratch y voy a rellenar estos pasos que aparecen a continuación en primer lugar elige un nombre de usuario en scratch y no uses tu nombre real si quieres preservar tu privacidad entonces si por lo que sea no quieres que todo el mundo se entere de cuál es tu nombre real no lo pongas como en mi caso realmente no me importa pues voy a poner josé vicente carratalá a continuación elige una contraseña recuerda la y yo te diría casi incluso apuntala en alguna parte en alguna libreta para por si en algún momento lado se olvida si se te olvida la contraseña pues la puedes pedir que te o bien que te la envíen o bien que te permitan reiniciar la pero aún así sigo recomendando recordarla es decir apuntar en alguna parte voy a elegir una contraseña repito la contraseña es decir vuelvo a escribir la contraseña que escrito arriba y pulso siguiente evidentemente estamos en el paso 1 de 5 pulso siguiente y a continuación mes y año de nacimiento el género y el país bueno pues mes abril año 1978 género masculino familia no u otro en caso masculino país país país país españa vamos a ver aquí tendré pulsamos siguiente para continuar con la siguiente pantalla correo electrónico bueno en primer lugar un mensaje de confirmación de cuenta debemos poner el correo electrónico por dos razones el correo electrónico verdadero la primera razón es porque nos van a enviar un mensaje de confirmación y hasta que no pulsemos en ese mensaje de confirmación no funcionará scratch y a continuación además debemos poner un correo verdadero porque si en un momento dado olvidamos la contraseña nos la van a enviar a ese correo así que voy a poner info josé vicente carratalá puntocom info arroba jose vicente catalá puntocom recibe las últimas novedades del scratch team pues bueno vale porque así cada equis tiempo cada dos semanas aproximadamente recibir un correo con las novedades del lenguaje así que bien esto es opcional así que si no queréis recibir más están pues no lo pongáis y ya está pulso siguiente bien y nos dice ahora ya estás registrado así que puedes comenzar a explorar y crear proyectos pero para empezar a compartir debo hacer clic en el correo electrónico que me han enviado así que en este caso vamos a ver un momento voy a abrir mi correo electrónico y al abrir mi correo electrónico al abrir mi correo electrónico pues observó como efectivamente estas millones terminando en bandeja de correo electrónico observo que acabo de recibir este correo así que por favor confirma la dirección de correo electrónico para este usuario josé vicente carratalá en scratch entonces en este caso simplemente lo que tengo que hacer es una de dos o bien pulso este botón o bien lo que hago es hacer clic en este enlace bueno simplemente hago clic en el botón de confirmar mi elección vamos a verlo y ya está si veo esta ventana esto quiere decir que ya he confirmado mi dirección de correo electrónico y ya estoy dentro de mi cuenta de usuario vamos a comprobarlo simplemente cierro esta pestaña cierro esta pestaña le digo ok vamos quieres que google chrome guarde la contraseña para este sitio bueno si estoy en mi ordenador en mi ordenador de casa digamos le digo que si guardar y fijémonos que arriba pone josé vicente carratalá es decir arriba se reconoce mi cuenta de usuario esto quiere decir que ahora puedo empezar a crear proyectos de dos proyectos se van a guardar dentro de mi cuenta de usuario por supuesto siempre voy a tener la opción de poder descargar estos proyectos a mi ordenador pero además voy a tener la ventaja de poder guardar los proyectos en la nube en mi cuenta de usuario de scratch vamos a ver un momento de la cuenta de usuario voy a hacer clic y voy a ver que puedo cambiar mi perfil puedo elegir mis cosas puedo cambiar la configuración de la cuenta y puedo salir entonces voy a mostrar cómo salir más que nada para luego mostrar cómo volver a entrar así que pulso salir y observo que tengo scrats tengo la página de scratch punto de mighty punto edu exactamente igual que la tenía anteriormente la diferencia ahora por esto ha salido es que ya no quiero unirme a scratch porque ya me unido a scratch no quiero volver a elegir un usuario no tengo por qué volver a elegir un usuario porque yo ya lo he elegido ya lo he configurado el proceso que he mostrado hace un momento anteriormente solo hay que hacerlo una vez todo el resto de veces las siguientes veces no tengo que unirme sino que tengo que iniciar sesión tengo que iniciar sesión con los datos que he introducido hace un momento así que hago clic dentro de iniciar sesión y voy a decir que el nombre de usuario es el nombre que hubiera elegido en este caso recuerda que había elegido josé vicente carratalá y la contraseña va a ser la contraseña que yo hubiera puesto en mi caso recuerda como le he dicho que quería recordar datos los datos me aparecen ya introducidos si le has dicho que no recordar datos pues introducirlos manualmente y ya está pulso sobre iniciar sesión y es como ahora vuelvo a entrar dentro de esta página pero entró ya con mi usuario es decir ya no soy un usuario anónimo sino que el programa recuerda quién soy bien en este caso lo que voy a hacer es que puedo editar mi perfil al poner editar el perfil bueno pues lo que puedo hacer en este caso es poner cosas como una descripción sobre mí algo como formador desarrollador y diseñador en valencia españa en que estoy trabajando proyectos de acción presencial por ejemplo puedo puedo decirle que quiero cambiar la foto voy a decir en este caso que bueno puedo elegir una foto mía por internet sí que vamos a ver josé vicente carratalá voy a descargar una foto mía por ejemplo así que puedo seleccionar una foto esto no es obligatorio evidentemente sino que lo que estamos haciendo en este caso es eventualmente complementar el perfil al complementar el perfil vamos a ver me vuelvo a scrats y ahora pues aparece mi foto junto al resto de datos y si alguien quiere averiguar más sobre mí pues aparecerá también una descripción definitiva esto no es obligatorio para desarrollar proyectos en scratch pero bueno si en algún momento dado queremos hacerlo pues simplemente es tener en cuenta que podemos complementar nuestra información de perfil y ya depende un poco de nosotros el queramos poner información que el resto de usuarios puedan ver aunque queremos mantener nuestra privacidad y no poner ni nuestra foto ni datos personales esto ya evidentemente depende de cada uno pero eso sí lo que tenemos que hacer es tener cuidado es decir bien exactamente qué es lo que queremos que el resto del mundo vea o no vea de nosotros y aquí estoy aquí por cierto veo que tengo un nuevo mensaje en mi bandeja de correo cómo voy a tener un nuevo mensaje si me acabo de registrar bueno pues probablemente será un mensaje de bienvenida entonces me dice welcome to scrats en inglés me dice siempre que hagas proyectos y comentarios recibirás mensajes aquí entonces explora otros proyectos o crea tu propio proyecto la idea es que cada vez que entremos pues deberemos echar un vistazo por si alguno otro usuario del portal no se ha enviado algún mensaje alguna idea sobre algún proyecto nuestro alguna solicitud de editar nuestro código definitiva similares simplemente que vamos a ver que tenemos un sistema de mensajería interna y voy a finalizar este vídeo simplemente diciendo que aquí arriba tengo la opción de crear de crear nuevo proyecto al crear un nuevo proyecto vuelvo a ver el proyecto vuelvo a ver esta ventana de edición de proyectos pero fijémonos que ahora nos dice que soy josé vicente carratalá es decir este proyecto que voy a gestionar ya no es un proyecto que voy a tener que descargar a mi computadora sino que me lo puedo guardar y al aguardar lo menos estaré guardando en la nube es decir me lo estaré guardando dentro de la cuenta de usuario de scratch y también podré compartirlo con el resto de usuarios si me interesa vamos a avanzar en nuestro conocimiento de el manejo de scratch y de la creación de programas y juegos en este caso estoy de nuevo en la página principal de scratch punto mighty punto edu estoy a través de un navegador web y voy a crear un nuevo proyecto entro dentro del editor de nuevo entró con mi cuenta vamos a ponerle un nombre a este proyecto así que en este caso proyecto 2 el proyecto el proyecto vamos a verlo el proyecto anterior se llamaba proyecto 1 así que este va a ser proyecto 2 vamos a cambiar en primer lugar el sprite de inicio porque cuando arranca scratch por defecto arranca con un sprite lo cual nos viene bastante bien para no tener que explicar qué es esto de un sprite pero ahora que ya hemos hecho previamente un juego ya hemos experimentado un poco con el programa pues está bien saber que es realmente un spray un sprite es cualquier recurso gráfico que introduzcamos dentro de nuestro juego en este caso yo puedo pulsar aquí donde pone nuevo objeto y el nuevo objeto puede ser un objeto de biblioteca puede ser un objeto que yo dibujé ahora puedo subir un archivo desde mi disco duro o puedo realizar una foto desde la cámara si tengo una cámara asociada a este ordenador de momento lo que quiero es seleccionar un objeto desde la biblioteca así que voy a hacer clic observo que tengo una librería bastante extensa de recursos tengo estoy filtrando ahora mismo por todos los objetos ya no estoy filtrando puedo ver sólo animales fantasía letras gente cosas transportes puedo filtrar por temática puedo filtrar por mapa de bits o por vector voy a ir a la categoría de animales y en la categoría de animales pues bueno por ejemplo voy a este starfish voy a esta esta pequeña estrella de mar aparte al seleccionarla me dice el número de disfraces que tiene ahora vamos a ver qué es esto de los disfraces voy a pulsar ok y al pulsar ok observamos que tengo 22 sprites tengo dos nuevos elementos en pantalla tengo el gato que ya tenía anteriormente y tengo la estrella de mar bueno de momento lo que quiero hacer es eliminar el gato voy a hacer un juego con la estrella de mar así que botón derecho y le digo tranquilamente borrar estoy borrando el gato solo en este proyecto si hago nuevo proyecto por supuesto volvería a aparecer además quiero un fondo así que me voy a escenario voy a quitar esta barra me voy a escenario me voy a sacar un escenario desde la biblioteca me voy a ir a exteriores y voy a buscar pues un fondo de mar que creo que tenía uno por allí vamos a ver me voy a underwater 3 entonces selecciono este fondo de mano de hecho vemos que tenemos 3 pero parece yo creo que el tercero es el que pega un poco más con el diseño del personaje que he seleccionado esto por supuesto puedes elegir el fondo que quieras así que pulso underwater 3 pulsó el botón de ok y observamos como tenemos ya la estrella por encima de el fondo aprovecho que aparece por aquí la opción de ver disfraces observo que esta estrella tiene dos disfraces hay sprites que tienen 345 y hay otros que sólo tienen 2 como es este caso y no hay ningún problema los sprites podrían definirse en los disfraces podrían definirse como estados de los sprites son diferentes estados donde ahora mismo pues tengo un estado donde la estrella de maná está un poco que tendría yo como seria y hay otro disfraz otro estado donde la estrella de mar está un poco más digamos contenta bien voy a elegir por defecto de estado starfish va estar facebook el más adelante trabajaremos con el estado a de momento muy importante vuelvo a programas porque siempre que es un sprite nuevo por defecto se me va a la pestaña de disfraces entonces puede llegar un momento en el que diga vale esto está muy bien pero dónde están mis bloques dónde están mis nodos de programación bueno pues siempre recordamos que aquí arriba tenemos la pestaña de programas una vez que tengo esto vamos a empezar a trabajar y voy a empezar en este caso otra vez con eventos yo diría que prácticamente cualquier proyecto que vamos a hacer va a empezar por la pestaña de eventos en este caso voy a usar este evento de al presionar bandera verde así que importante primero pulso starfish para que el programa entienda que lo que voy a hacer a continuación lo voy a hacer con las estrellas es un comportamiento que aplico a la estrella una vez que he hecho esto ahora si pulso y arrastro este nodo hacia el espacio de trabajo y voy a definir qué es lo que va a pasar al presionar bandera verde a personar bandera verde ahora voy a ir a control y dentro de control lo que va a ocurrir es que vamos a visualizar para qué sirven estos nodos más complejos hay un modo llamado repetir diez veces el nudo de repetir diez veces repite una acción además es un bloque que si nos fijamos tiene forma de bocadillo o sea que va a albergar algo dentro y es que va a repetir diez veces o las veces que yo diga la información que aparezca ahí dentro así que voy a usar por ejemplo este bloque lo conecto al evento de al presionar bandera y pone repetir diez veces algo así que por ejemplo me voy a apariencia y voy a decir algo durante un segundo así que voy a decir que te atrapó que te atrapó la exclamación inicial durante un segundo en este caso voy a pulsar la flecha que te atrapó pero no estoy viendo si esto realmente está funcionando es más dentro de 10 segundos lo que va a ocurrir es que probablemente como podemos comprobar va a finalizar así que dentro de control voy a insertar este nodo que ya conozco de antes que es el nodo de esperar un segundo cuidado porque al arrastrarlo hay que tener cuidado al arrastrarlo y hay que fijarse donde aparece la línea blanca porque donde aparezca la línea blanca es donde realmente se va a insertar o se va a intercalar ese bloque en este caso no podemos intercalar arriba o abajo es indiferente pero lo que es importante es que esté intercalado dentro del bloque repetir entonces pulso la bandera verde y dice que te atrapó y vuelve a decir que te atrapó y vuelve a decir que te atrapó es decir cada vez que pasa por este bloque se espera un segundo y luego durante un segundo dice que te atrapó y esto ocurre diez veces o esto ocurre en definitiva el número de veces que nosotros digamos ahora voy a pulsar voy a mover este bloque lo voy a apartar un poco me lo voy a dejar retirado si el bloque repetir repite una acción un número determinado de veces el bloque x siempre repite una acción para siempre y deja al programa en un estado de ejecución infinita y esto no es ni bueno ni malo pero simplemente hay que entender lo que ocurre cuando yo pongo un nodo llamado por siempre el nodo por siempre es igual al nodo a repetir con la diferencia de que el nodo repetir repite algo las veces que yo diga pero el nodo x siempre repite algo un número ilimitado de veces en este caso yo lo que quiero es que la estrella permanentemente esté persiguiendo mi cursor así que le voy a decir me voy a movimiento y le voy a decir por siempre mover 10 pasos cuidado porque lo que va a ocurrir es que cuando yo pulse el botón de la bandera la estrella siempre va a avanzar hacia adelante sea por siempre sin parar una vez y otra va a continuar moviéndose 10 pasos hacia adelante vamos a comprobarlo pulso a la bandera y comprobamos como es cierto el personaje se mueve se mueve se mueve se mueve se mueve se mueve hacia adelante así que simplemente esto en principio podríamos pensar que es correcto con la diferencia de que yo realmente no quiero que el personaje se mueva siempre hacia adelante yo lo que quiero es que el personaje vaya siguiendo al cursor del ratón así que veo que hay un nodo específicamente llamado apuntar hacia uno puedo apuntar hacia múltiples sitios pero de momento vamos a ver de momento pone apuntar hacia el puntero del ratón más adelante cuando cree programas más complejos en esta lista aparecerán más más sitios hacia los que apuntar de momento yo lo que quiero es este bloque de apuntar intercalar lo antes del de mover 10 pasos es decir por siempre lo que hace el programa es primero apuntará hacia el ratón osea asegurarse de que la estrella está mirando hacia el sitio correcto y luego mover 10 pasos y bueno pues pulso la bandera y compruebo como ahora sí voy moviendo el cursor y la estrella la estrella la estrella me va buscando la estrella me va persiguiendo va persiguiendo el cursor del ratón el problema es que probablemente la estrella va muy rápida va más rápida de lo que a mí me gustaría así que me voy a pulsar parar para hacer que la estrella no vaya tan rápida tenemos que usar una vez más este bloque genial que nos va a servir yo diría para prácticamente cualquier proyecto que es el bloque de esperar el bloque de esperar lo voy a intercalar una vez más dentro de este pequeño conjunto de bloques que tenemos lo que hace es que antes de repetir cada una de las iteraciones en las que ejecutó espera un segundo o sea primero apunta hacia el puntero luego mueve 10 pasos pero luego espérate un segundo entonces si nos fijamos voy a dejar el cursor quieto la estrella está viniendo hacia mí pero se actualiza cada segundo se ejecuta cada segundo bueno quedar segundo ha sido demasiado fuerte yo lo que quería era ralentizar la estrella pero no quiero que vaya tan lenta así que la idea es que voy a parar el programa ya sabes que puedo modificar el tiempo de espera y poner realmente lo que yo quiera entonces pongo esperar 0.1 segundos le ve a play y así observó como ahora así pues la estrella va un poco más lenta la estrella va un poco más lenta la estrella va un poco más lenta pero en definitiva se cumple la condición de que la estrella está apuntando siempre intentando perseguir hacia el cursor vamos a seguir vamos allá con nuevos comportamientos para este juego vamos a verlo en pantalla completa vamos a pulsar la flecha la bandera y observamos como la estrella siempre vienen por mí bueno allí digamos un comportamiento que yo debo realizar que es el siguiente que es bueno que es lo que ocurre cuando la flecha osea que es lo que ocurre cuando la estrella me alcanza la idea es que cualquier juego digamos debe tener un objetivo y debe tener un final no todos los juegos lo tienen pero desde luego tener un final concreto me puede ayudar llega un momento en que la estrella me alcanza entonces cuando la estrella me alcanza debo hacer algo en pantalla lo que voy a hacer en este caso es primero detectar si es cierto que la estrella me ha alcanzado y segundo hacer algo así que voy a voy a parar el juego voy a restaurar la estrella donde estaba y en primer lugar fijémonos que si la estrella está aquí cuando pulsó play estrella empieza en el punto donde yo la había dejado dentro de movimiento tengo un nodo que es ir a x algo y algo este nodo lo que hace es que indica manualmente cuál es la posición del objeto con el que voy a trabajar así que voy a intercalar este nudo pero lo voy a poner no dentro del bloque por siempre sino antes del bloque por siempre y voy a decirle que vaya a x 0 y 0 que es lo que hace este nudo en este caso este nodo se asegura de que el personaje cada vez que lo dé a play empiece desde el centro de la pantalla más adelante discutiré poco a poco qué es esto de x y qué es esto de y por de momento vamos a poner x 0 y 0 voy a pulsar la flecha y comprobamos como siempre que el juego empieza el personaje se vuelve a 0 0 ahora quiero decirle al personaje que es el personaje me toca el cursor el puntero en definitiva es el personaje me alcanza quiero que pase algo tú fíjate en lo que acabo de decir si el personaje hace algo si es un sí no afirmativo si no condicional es decir quiero poner una condición quiero decirle al programa si se cumple una condición en ese caso haz algo s si se cumple una condición está dentro de las estructuras de control hemos visto dos estructuras que son las estructuras de repetir y de repetir por siempre pero hay abajo dos estructuras que son sí y sí y sí no este es el sí sencillo y este es el sí complejo voy a usar el complejo y voy a introducirlo dentro del bloque por siempre dejémonos que por siempre para la ejecución y si y si no son dos bloques de control pero eso no quiere decir que no puedan ir uno dentro del otro pueden ir perfectamente no hay ningún problema pero ahora yo debo rellenar el contenido del bloque sí y si no fijémonos que dice si espacio vacío entonces algo es decir si se da una condición que yo voy a poner ahí dentro en ese caso ejecutaré algo y si no se da esa condición en ese caso ejecutaré otra cosa el sí complejo es muy interesante desde el punto de vista en que introduce un caso verdadero y un caso falso para introducir este bloque fijémonos que este bloque es un poco particular porque tiene los bordes en forma de rombo digamos que acaban en flecha me voy a ir a sensores y dentro de sensores observaré que hay unos cuantos bloques que tienen exactamente esa forma geométrica los bloques de forma geométrica bloques de sensores los que tienen este acabado en flecha son son bloques de pregunta es cierto que se da esta condición o sea es cierto o no es cierto que estoy tocando el puntero del ratón es cierto o no es cierto que bajó de mí está el color verde es cierto o no es cierto que el color morado está tocando el color verde en definitiva todos aquellos bloques que tienen esa terminación en flecha son bloques que preguntan si algo es cierto o no es cierto entonces simplemente además justo este es el que quiero tocando el puntero del ratón pincho y arrastro este bloque y lo insertó aquí dentro no pasa nada porque geométricamente parezca que no coincide porque sí que coincide es decir cuando lo suelto lo arrastró aunque el hueco parezca mucho menor no hay que preocuparse el hueco se hace grande lo importante eso sí es que geométricamente coincida quiero decir que respuesta no puede ir aquí dentro porque respuesta es un bloque con una terminación redondeada pero tocando acaba y empieza en estos angulados en estas flechas bueno entonces voy a eliminar la respuesta borrar y si está tocando el puntero del ratón en caso verdadero haremos algo y en caso falso si no está tocando el puntero del ratón haremos otra cosa nos damos a apariencia vamos por aquí a apariencia y dentro de apariencia veremos que tenemos el cambiar el disfraz a estar facebook podemos cambiar el disfraz a lo que queramos pero porque podemos elegir siguiente disfraz así que hacemos click en siguiente disfraz y hacemos click en siguiente disfraz o lo que es lo mismo podemos borrar estos dos es lo mismo hacer cambiar disfraz a star bisbee y cambiar disfraz a jarvis un momento cuál es el disfraz bueno vamos a verlo el star fish ahí es cuando la estrella está contenta y él starfish beats cuando no está tan contenta bueno pues yo quiero que cuando la estrella haya tocado el puntero del ratón en ese caso la estrella está contenta porque me ha atrapado y cuando me escapo en este caso cambio el disfraz a starfish beat vamos a comprobar si funciona pulso la bandera la estrella me quiere atrapar la estrella me quiere atrapar y si paro el cursor y dijo que me atrape en ese caso la estrella se pone contenta porque me ha atrapado si salto si si es algo observamos que la estrella ya deja de estar contenta otra vez porque ya no me ha atrapado pero si dejo que me atrape en este caso vuelve a estar contenta con él así que tenemos ya un programa funcionando voy a parar el programa donde en este caso este bloque que tenemos aquí es el que se encarga de hacer que la estrella venga a por mí y este bloque condicional si es cierta una condición hago algo y si no es cierta hago otra cosa es el que se encarga de especificar cómo se comporta ésta el disfraz de la estrella que disfraz es el que tengo que mostrar en cada momento bueno me gustaría tener una introducción a este juego así que vamos a ver vamos a decirle a la estrella con control que se esté quieta durante los primeros cinco segundos del juego esto quiere decir que cuando hago clic por aquí lo que ocurre es que la estrella se queda quieta cinco segundos y a continuación ya viene a por mí por cierto no te esperas 5 segundos no primero ocurre esto y ahora de esperar 5 segundos va aquí es decir primero ves a 0 0 y luego espera 5 segundos con esto lo que acabo de demostrar como acabamos de ver es que el orden en el que colocó los bloques es importante porque no se ejecuta 1 hasta que no acaba el anterior pulso la flecha ahora sí cuidado porque ha ido a x 0 y 0 pero la rotación se ha quedado con la rotación que tenía anteriormente tampoco quiero esto me voy a movimiento y le digo apuntar en dirección 90° esto básicamente es colócate en el centro esto es apunta hacia la derecha esto es espérate 5 segundos y entonces empieza el juego vamos a comprobarlo bandera se queda 5 segundos la estrella quieta y a continuación empieza al juego y la estrella intenta atraparme hasta que finalmente lo consigue además me gustaría tener como una especie de introducción al juego es decir algo que el juego dijera bueno bienvenido la es fría te va a atrapar así que intenta intentar escapar para ello vamos a crear un nuevo objeto entonces vamos a decirle a la estrella simplemente que piense algo vale así que voy a decirle apariencia quieto voy a decirle pensar vamos a ver y voy a pensar dentro d 5 segundos voy a atraparte en este bloque admiración así que dentro de cinco segundos voy a atraparte pasan cinco segundos y entonces la estrella aquí lo tenemos un poco digamos una introducción para que sepamos qué es lo que se supone que va a ocurrir dentro de este juego ya tenemos esto por aquí tenemos esto por aquí con lo cual este proyecto va a quedar mínimamente finalizado desde el punto de vista de que ya tenemos pues un personaje moviéndose en pantalla y este ejercicio una vez más pues nos ha servido de excusa para aprender más nodos para hacer un ejercicio más complejo que la anterior y en definitiva para profundizar un poco acerca de nuestro conocimiento sobre scratch a continuación voy a guardar voy a guardar el proyecto entonces una vez que he guardado el proyecto es cuando puedo ir a mis cosas todas mis cosas puedo ir desde aquí o puedo ir desde mi cuenta de usuario voy a entrar en mis cosas y voy a ver qué hay dentro de mis cosas dentro de mis cosas van voy a encontrar todos aquellos proyectos que yo voy a haber realizado en un momento dado u otro esto quiere decir que yo en este caso como comentaba antes al crearme una cuenta de usuario en scratch no pierdo los proyectos cuando los estoy realizando sino que se quedan guardados en la nube pero claro qué es esto de la nube por esto de la nube es básicamente que dentro de mi cuenta de usuario tengo esta zona llamada mis cosas y mis cosas no es más que una librería de los proyectos que he realizado hasta el momento en cualquier momento si yo he salido del proyecto porque entro de mis cosas puedo volver al proyecto simplemente haciendo clic dentro de él le digo que quiero ver el proyecto ver dentro entró el proyecto y puedo seguir trabajando y puedo seguirlo evitando y puedo mejorarlo todas las veces que quiera además en este caso yo lo que voy a hacer es que voy a compartirlo vamos a verlo en el siguiente vídeo vamos a hablar un poco de cómo empezar a participar dentro de la comunidad de scratch y desarrollar proyectos en scratch es divertido pero al final no debemos olvidar que la idea de scratch el día del proyecto scratch no es solo aprender a programar sino también en un momento dado si queremos podernos sentir parte de una comunidad esto que voy a explicar ahora no es obligatorio es decir no es obligatorio formar parte de la comunidad pero e integrarse dentro de la comunidad de desarrollo de desarrolladores de scratch pues evidentemente tiene ventajas y es un poco el aprender más rápido el compartir proyectos con otras personas el desarrollar colaborativamente proyectos en definitiva por fomentar valores tales como el trabajo en equipo y en definitiva gracias a esta comunidad crecer rápidamente como desarrolladores cuando yo creo un proyecto por defecto de ese proyecto es privado y eso quiere decir que solo yo lo puedo ver pero en un momento dado yo puedo elegir compartir un proyecto así que en este caso este proyecto lo voy a compartir voy a hacer clic sobre el botón de compartir y observamos en este caso como pues le puedo dar un nombre al proyecto voy a poner curso scratch un proyecto 2 el proyecto esto es un borrador porque no lo he acabado instrucciones le decimos un poco a la gente qué es lo que se supone que ocurre en el proyecto así que instrucciones debes escapar de la estrella de mar si te atrapa pierdes la partida lo que todavía no existe es la parte que todavía no hemos desarrollado por eso he dicho que este es un borrador notas e créditos asustado de ideas scripts o arte de otras personas nombra los aquí pues en este caso de todo el material gráfico desde la de scratch bien así que ebro tenemos ya el proyecto publicado y ahora evidentemente pues simplemente lo que haría falta sería esperar ay qué bueno pues eventualmente alguien lo viera y alguien dejara un mensaje pero o incluso participará dentro de tu propio proyecto como vemos aquí otras personas podrán probarlo dar comentarios y reinventarlo en definitiva participar eventualmente pudiendo descargarse y modificar una copia del proyecto además aprovecho para recordar que teníamos un primer proyecto creado pero claro yo creé el proyecto antes de hacerme una cuenta de usuario bueno no pasa nada no pasa nada porque voy a crear un nuevo proyecto vamos a verlo y dentro de archivo voy a decirle que quiero subir un proyecto desde mi computadora así que subo desde mi computadora recordamos que en la carpeta de descargas tengo proyecto 1 pulso a abrir reemplazar el contenido del proyecto actual le digo que sí y vamos a observar cómo obtenemos bueno los nodos que teníamos anteriormente así que cursos kratz y proyecto 1 archivo a guardar ahora y en definitiva el proyecto que había hecho anteriormente dado que ahora tengo una cuenta de usuario pues no hay ningún problema no puedo gestionar perfectamente dentro de josé vicente carretera dentro de mis cosas vamos a ver cómo tengo curso scratch proyecto 1 curso scratch proyecto 2 y esto quiere decir nos añadirá en el momento nada dentro del curso scratch proyecto 1 hemos añadido a nuestra cuenta el proyecto que habíamos hecho cuando todavía no teníamos ninguna cuenta de usuario bueno yo en principio cada proyecto que haga lo voy a compartir así que voy a entrar dentro del proyecto voy a ver dentro voy a decir que lo quiero compartir curso scrats proyecto 1 9 mueve el gato usando las teclas de dirección del teclado le digo que es un borrador por si más adelante quiero modificado y arte gráfico la librería scratch así que ya lo tengo y bueno además cada vez que yo entro dentro de mis cosas también no sólo entre ellos sino que cualquier persona puede entrar puedo entrar y puedo decirle que quiero verlo quiero verlo en grande y quiero darle a play y en definitiva así es como vamos a esperar 5 segundos así es como cualquier persona va a poder ver y jugar con nuestros proyectos un poco el bono el que al compartir el proyecto que sepamos que a partir de ese momento cualquier usuario de la plataforma scratch va a poder ver nuestros proyectos y jugar a nuestros proyectos yo creo y eso es una opinión personal ya partir de ahí cada uno que haga lo que quiera pero yo creo que esto es lo divertido porque aprender a programar y que nadie se entere de ello aprender a hacer programas pero que nadie pueda disfrutar de tus programas pues es un poco incompleto si puedes crear programas pero también estar permitiendo que la comunidad pueda jugar a tus juegos y probar tus programas e interactuar eventualmente pues pienso que es algo bastante más divertido vamos a arrancar un nuevo proyecto en este proyecto continuamos profundizando en nuestros conocimientos de scratch a la vez que creamos un videojuego muy conocido como es por ejemplo arcano bed vamos a pulsar sobre crear y vamos a crear este juego arkanoid que es el clásico juego de romper ladrillos con una pelota ya verás que es un juego tremendamente conocido yo creo que todo el mundo lo conoce vamos a ver estamos guardando cambios vamos a nombrar el proyecto para nombrar el proyecto voy a ir a mis cosas y esto es curso scratch project o lo que sea vale pues nuevo proyecto y esto va a ser curso scrats proyecto 3 en este proyecto vamos a empezar a jugar con varios sprites de manera simultánea voy a crear un nuevo objeto de tipo sprite de librería este primer objeto va a ser una pelota de color amarillo vemos como tengo dos sprites tengo el gato y tengo la pelota quiero un nuevo sprite que es una barra horizontal que está por aquí abajo barra horizontal que tiene el nombre de pádel así que seleccionó papel tengo esta barra horizontal el gato realmente no lo quiero en este proyecto así que simplemente voy a pulsar botón derecho y voy a decir que quiero borrar y ahora lo que quiere es ubicar los objetos en la pantalla tengo el papel en la parte inferior tengo la pelota en el centro de la pantalla para luego colocar una serie de ladrillos por la parte de arriba y yo creo que más o menos te haces la idea de qué juego estoy hablando es este juego en el que la pelota va rebotando y con esta pala con esta base con esta superficie tengo que evitar que la pelota se caiga empezamos trabajando con la pelota este ejercicio nos va a servir para comprobar como de hecho podemos tener varios comportamientos en cada uno de los sprites en primer lugar voy a trabajar con el papel seleccionó el pádel hago clic dentro del pádel para asegurarme que los bloques que voy a crear van a afectar al pádel y no a la pelota trabajo con control y voy a crear con control no perdón con eventos al presionar la tecla espacio no voy a pulsar la flecha izquierda y voy a presionar la tecla de flecha derecha así que el papel flecha derecha el papel va a ser movido mediante la flecha izquierda y la flecha derecha de esta forma ahora si me voy a movimiento y voy a elegir en este caso los pasos que quiero dar en primer lugar apuntó en dirección flecha izquierda hacia la izquierda y al pulsar la flecha derecha apuntó en dirección más 90 y a continuación por último nuevos 10 pasos y muevo 10 pasos vamos a comprobar con play si esto funciona correctamente ya que comprobamos como de esta forma ahora sí con las flechas izquierda y derecha puedo mover la barra inferior no puedo pulsar la fecha superior la flecha hacia arriba no puede pulsar la flecha inferior en definitiva el programa solo hace aquello que yo he programado que en este caso es únicamente trabajar con las flechas izquierda y derecha por cierto que aprovechó el momento también para poner algún fondo entonces vamos a ver qué fondo puedo poner que no hay algún fondo específico para arkanoid así que bueno el fondo más abstracto que pueda por ejemplo el neón túnel yo creo que estará bien para empezar pulso ok y tengo el neón túnel pulso y compruebo como efectivamente el objeto se mueve en pantalla vamos aquí a fondos y en fondos vamos a ver tenemos versos de línea podemos dibujar no es que quiera dibujar específicamente simplemente damos un vistazo a los fondos que tenemos ahora mismo dentro de la pantalla muy bien voy a escoger algún otro fondo a uno más suave es que este fondo es muy duro quizás trabaje con un color sólido bueno pues este fondo está un poco mejor yo digo que puedo trabajar con este fondo o puedo un color sólido en definitiva lo que sea para que no se me quede el fondo blanco una vez que ya he programado el comportamiento del papel es decir de la paleta aquí abajo ahora quiero trabajar con el comportamiento de la pelota para esto es para lo que primero hago clic en la pelota a menos que se haga clic en el papel aparecen sus nodos y si hago clic en la pelota no aparece ninguno porque todavía no he empezado a trabajar voy a ir a eventos y voy a establecer un evento inicial al presionar la bandera de empezar a juego lo primero que quiero es centrar la pelota en la pantalla entonces le digo ir a x en x 0 y 0 esto quiere decir que aunque la pelota esté en cualquier extremo de la pantalla cuando yo pulso a la bandera la pelota se centra dentro de lo que es el escenario a continuación quiere decirle que la pelota tendrá que girar para apuntar en dirección va a apuntar en dirección 90 por ejemplo y una vez la pelota apuntado en dirección 90 giro 15 grados si ahora ejecuto del juego de momento no hace mucho parece que no pero la pelota ha girado y ahora quiero poner la pelota en perpetuo movimiento en el momento en el que digo perpetuo lo que realmente quiero decir es que quiero ir a un evento pero quiero ir a un control quería decir que sea por siempre perpetuo es decir la pelota tiene que estar constantemente realizando una acción y si digo constantemente estoy diciendo por siempre introduzco el control por siempre y ahora volviendo a movimiento por siempre la pelota tiene que estar moviéndose 10 pasos tengo ahora un bucle sin fin vamos a comprobarlo vemos como la pelota va avanzando y el único problema es que cuando llega al borde se queda ahí quieta de hecho se queda ahí detenida siempre intenta avanzar 10 pasos el problema es que ha llegado al límite del escenario y el escenario evidentemente no le deja ir más allá para esto precisamente dentro de movimiento tenemos un bloque de comportamiento que se llama rebotar si toca un borde para este juego es justo lo que quiero y justo lo que necesito así que dentro del bucle por siempre después de mover 10 pasos le digo rebotar si toca un borde así que ejecutó el programa y ahora observamos como la pelota va rebotando a lo largo de la pantalla sin ningún problema perfecto ya tenemos este rebote la pelota ya rebota con los bordes pero como podemos comprobar la pelota no está haciendo ningún caso a mi bandeja al jugador que he metido en la parte de abajo de la pantalla así que de esta forma lo que yo quiero hacer es crear un nuevo movimiento crear una nueva lógica de manera que pueda detectar cuando está rebotando conmigo todo aquello todo aquel comportamiento que tiene que ver con una detección de colisión lo vamos a encontrar en los sensores los sensores básicamente son una serie de bloques que se encargan de gestionar el que un sprite no sea independiente del resto de sprites sino que un sprite tenga el sentido sea capaz de detectar si está colisionando con algún otro elemento entonces tengo es cierto que estoy tocando el puntero del ratón bueno es cierto que estoy tocando el papel pero esto en sí no es un nudo que yo pueda colocar algo así que si me pregunto es cierto tengo siempre que poner un evento perdón un control quería decir un control de si condicional entonces le digo si es cierto lo coloco aquí que estoy tocando el papel es decir si es cierto que la pelota porque cuando hace que estamos dando de la pelota está tocando el papel entonces qué ocurre bueno pues entonces me voy a movimiento y le digo por ejemplo que giro por ejemplo 180 grados en este caso por siempre voy a estar controlando a ver si es cierto o no que estoy girando perdón que estoy tocando el papel que la pelota está tocando el papel y si es cierto en este caso voy a girar 180 grados así que ejecutamos el juego y observaremos como la pelota está rebotando en los bordes y vamos a ver como realmente es cierto ahí estamos pero ya tenemos un primer rebote la pelota está rebotando con los bordes y está rebotando con el papel está rebotando contra el protagonista vamos a ver qué más podemos hacer en este juego una vez que tenemos la pelota rebotando contra los bordes y rebotando contra la raqueta digamos es cuando tenemos que preocuparnos voy a parar un momento el juego por los bloques en un juego de tipo arkanoid realmente el objetivo es que la pelota rompa unos cuantos bloques que hay por aquí arriba así que voy a añadir un nuevo objeto vamos a ver y voy a solucionar por ejemplo este botón este sprite está pensado para ser un botón pero yo lo voy a usar para trabajar con un ladrillo así que tengo este botón por aquí me lo voy a dejar por aquí arriba y a continuación lo que voy a hacer es darle un comportamiento concreto a este botón en este caso voy a decir lo siguiente vamos a ver lo que quiero en este caso es que en el momento en el que colisione con la pelota es decir me voy a evento vamos a comprobar si es cierto colisiona con una pelota es decir me voy a la pelota sí es cierto que estoy tocando me voy a evento al bloque me voy a presionar la bandera le digo en control que quiero realizarme la pregunta de por siempre y en este caso digo por siempre me pregunto si es cierto que estoy en sensores colisionando estoy tocando la pelota sí es cierto en ese caso lo que tengo que hacer es desaparecer fijémonos que hay una serie de bloques llamados y mostrar y esconder así que en este caso esconder lo que voy a hacer también es que al presionar la bandera por defecto si un bloque estaba escondido debe mostrarse ya que si no como podemos observar en la pantalla es me va a quedar escondido para siempre pulso ejecutar aparece el bloque rebota la pelota y el bloque desaparece es decir cuando la pelota toca al bloque lo que ocurre es que el bloque se esconde y la pelota ya no es capaz de verlo tenemos ya está funcionando en pantalla ahora además me gustaría trabajar con un sonido me gustaría trabajar con un nuevo sonido es el sonido pop vamos tenemos aquí este sonido vamos a bajarlo un poco el volumen del micrófono [Música] más suave aproximadamente así y lo que quiero ahora es que en sonido quiero ejecutar el sonido pop rey del pop lo que va a hacer es que cuando la pelota toca ese bloque no sólo desaparece sino que se oye pop soy el sonido que nos dice que ese bloque se ha escondido muy bien ya tengo un bloque desapareciendo en pantalla ahora lo que también querría hacer es que si es cierto en el caso de la pelota que está tocando el bloque es decir si es cierto que está tocando sensor que está tocando el bloque button 3 en ese caso girar en movimiento girar 180 grados a un mismo comportamiento ponemos bloques en dos partes por una parte en la pelota y por otra parte en el bloque ahora ejecutamos de nuevo y comprobamos como la pelota al tocar el bloque por una parte desaparece el bloque y por otra parte la pelota rebota y cuando vuelve a pasar por ahí evidentemente ella no rebota porque el bloque ya no existe vemos como en este caso realizar un bloque y realizar una colisión es más sencillo de lo que en un principio puede aparecer usando scratch vamos a elevar un poco la dificultad del ejercicio diciendo que queremos realmente tener varios bloques en la pantalla pero para tener varios bloques en la pantalla una opción manual y por tanto generalmente no válida consiste en pulsar botón derecho y decirle duplicar al duplicar aparece un nuevo bloque y vuelvo a duplicar y aparece otro bloque y así puedo duplicar tantas veces como quiera problemas que este método de trabajo digamos que tiene más desventajas que ventajas ya que si yo quiero hacer 30 bloques por supuesto al duplicar se heredan los nodos se copian también los nodos se copian los bloques de comportamiento pero qué pasaría si yo más adelante me doy cuenta de que quiero hacer una modificación pues y tengo 30 bloques ya que ir uno por uno copiando esto no es bueno esto no pinta bien así que esta no es la manera correcta de duplicar objetos la manera correcta es la siguiente que voy a mostrar a continuación en pantalla en primer lugar déjame en cuando apariencia que escale el tamaño al 50% esto quiere decir que voy a hacer el tamaño de ese bloque un poco más pequeño he usado el fijar tamaño a un porcentaje el 100 por ciento es el tamaño original el 50% es la mitad del tamaño el 200% es el doble del tamaño en este caso 50% para hacer el bloque más pequeño y ahora cuando arranca el juego lo que quiero en este caso es decirle al programa que quiero realizar un clon para crear un clon me voy a ir a control me voy a ir a crear clon de mí mismo crear clon de quien quiera pero en este caso es el mismo ya que estoy en el botón estoy en el bloque y quiero también decirle al programa que quiero añadir algo de posición entonces vamos a añadir un poco de posición añadir fijar la equis carla y definitiva al crear un clon vamos a darle a play no se ve ahora mismo en la pantalla ahora sí pero dejémonos como hay dos elementos de hecho de hecho al crear el clon vamos a ver lo que podría ir a control puedo repetir una operación con cuidado puedo repetir una operación x veces puedo repetir diez veces la operación de crear clon con esto lo que estaría haciendo es crear realmente 10 elementos diferentes estoy creando 10 elementos en el momento en el que estoy jugando y si nos fijamos además la pelota reconoce los 10 elementos tengo ya una manera de duplicar a continuación el siguiente vídeo vamos a decir que no sólo quiero duplicar sino que además quiero distribuir objetos en pantalla para conseguir este efecto vamos a realizar lo siguiente vamos a ir al movimiento vamos a ir a mover a mover diez pasos probablemente son pocos vamos a mover dentro del bucle de repetir y voy a pulsar ejecutar y compruebo cómo se me crean diez copias del bloque probablemente diez pasos son pocos además al mover el puntero se queda en esta posición así que yo lo que quiero es especificar que la posición en este caso la posición original vamos a verla es menos – 200 150 – 200 150 cuando muevo un bloque aquí abajo es donde puedo ver su posición x su posición y así que quiero mover por ejemplo 50 pasos pulso ejecutar y ahora si parece que efectivamente correctamente aparecen los bloques este bloque como decía a ver – 230 150 lo acabamos de final 40-50 pasos parecen demasiados vamos a poner 35 casi los 40 y al pulsar play podemos comprobar como ahora si estamos creando un número de bloques suficiente cada uno de estos bloques aparte tenemos algo de comportamiento de rebote con la pelota entonces en este caso muy bien para a continuación quiero crear un par de filas más para crear un par de filas más voy a duplicar todo este bloque de contenido voy a parar solo quiero este bloque de contenido este bloque de repetir y voy a hacer lo siguiente me voy suplico no quiero todo esto me voy a menos 230 coma 125 y vuelvo a introducir este blog si esto funciona correctamente fijémonos que en este caso están creando dos hileras de ladrillos esta forma parece bastante más rebuscada que la anterior pero sin embargo es más segura desde el punto de vista en el que tengo ahora mismo 20 bloques en la pantalla y podría tener 40 y no pasaría nada en el sentido de que bueno pues tendría digamos 20 bloques de pendientes de sí mismos lo bueno es que con un poquito más de modificación de este código básicamente puedo tener 20 puedo tener 300.000 bloques y no tendría que ir copiando y pegando así que es una manera un poco más rebuscada pero también digo que desde el punto de vista del desarrollo no sólo de juego sino del desarrollo de programas en general es novedad mucho más segura de trabajar en este caso hay que tener en cuenta que ya tenemos una serie de bloques en la pantalla cuando la pelota toca un bloque la pelota rebota pero sin embargo el bloque no desaparece que es lo que suponemos que debería estar haciendo tenemos aquí un conjunto de bloques tenemos una estructura de control que es la que dice que si está tocando la pelota en ese caso se debe esconder el problema es que este conjunto de bloques hace referencia únicamente al bloque inicial y no a cada uno de los clones que hemos creado así que de esta manera tenemos aquí un evento técnicamente es extraño porque si nos damos cuenta este evento es más este control que se llama realmente es un evento que es cuando empiece como un clon pero bueno está situado dentro del bloque dentro del grupo de bloques de control así que hago clic y arrastro y comprobamos cómo aparece un al comenzar como clon es un comportamiento que se va a asignar a cada uno de los clones en el momento de ser clonados es decir en el momento de nacer luego por tanto este bloque no debe estar aquí abajo sino que debe estar al comenzar como clon debe aplicarse para cada uno de los clones para cada uno de los clones deben preguntar si se te ha tocando la pelota y si la están tocando en ese caso esconden y suena el sonido pop vamos a comprobarlo pulsamos play y vamos a ver si es cierto aquí lo tenemos que desaparece uno o dos ladrillos depende donde pegue la pelota desaparece otro ladrillo y tenemos ya por aquí la colisión una vez que tenemos esto una vez que tenemos ya que los ladrillos daban poco a poco desapareciendo y además puedo controlar suelta además puedo controlar que la pelota no se caiga cuando ya parece que tengo el juego en marcha ahora una vez que tengo el juego en marcha porque este juego es infinito tengo que introducir dos elementos uno que es la condición de ganar y otra que es la condición de perder para la condición de ganar básicamente lo que quiero es comprobar que no hay ningún bloque en la pantalla vamos a ver por qué tengo hay un bloque que no quiere irse ahora sí en el momento en el que no quede ningún bloque en la pantalla es cuando realmente yo creo que ya he ganado para conseguir eliminar bloques de la pantalla tengo que crear un elemento llamado contador así que un contador no deja de ser una variable una variable es un elemento dentro de cualquier lenguaje de programación que precisamente recibe este nombre porque va a variar y un contador evidentemente va a ir variando las variables están dentro de datos así que yo a continuación lo que voy a hacer es ir a la pelota y dentro de la pelota voy a crear una variable así que hago clic realmente dentro del botón prueba le voy a crear una variable y esta variable va a ser una variable llamada puntuación puntuación puntos lo que queramos aunque la palabra puntuación debería llevar en castellano acento en lado no os recomiendo ponerle acento ya que es un nombre de variable y hay que tener en cuenta que aunque scratch está en castellano no deja de ser un lenguaje de programación hecho en inglés originalmente por eso esta variable la voy a llamar puntuación en castellano pero sin acento ahora ésta es una variable que involucra a varios objetos a todos los objetos o es una variable privada para este objeto hay que tener en cuenta que realmente la puntuación es una variable que está dentro de todo el videojuego diferentes elementos pueden afectar a la misma variable así que voy a decir que es una variable para todos los objetos se me crea una variable puntuación y se crean una serie de bloques adicionales de fijar puntuación cambiar puntuación mostrar puntuación esconder puntuación fantástico voy a ir al bloque y voy a decirle al programa que cada vez esté tocando la pelota en ese caso puntuación cambiar puntuación por 1 en ese caso puntuación aumenta un valor de hecho cuando arrancó el programa la puntuación vale pero esto fijar puntuación lo que hace es darle un valor inicial a la puntuación esto quiere decir que cuando pulso la bandera la variable puntuación los puntos del programa valen 0 y cada vez que modificó la puntuación cada vez que rompo un bloque cada vez que la pelota toca un bloque cambiar puntuación por 1 esto quiere decir sumarle un valor a la puntuación vamos a ver si es cierto pulsamos la bandera puntuación arriba podemos ver que es cero y ahora puntuaciones dos porque he eliminado dos bloques eliminó un bloque más de la puntuación estrés ahora puntuaciones 4 cuando paró el juego puntuaciones 4 pero cuando vuelva a pulsar la bandera puntuación vuelve a ser 0 porque yo he creado esta condición que dice que cuando presionó la bandera verde la puntuación vuelve a hacer a ser 0 la puntuación se vuelve a poner a 0 ya tengo la puntuación pero ahora mismo no estoy usando la puntuación para nada así que yo ahora lo que quiero decirle al programa es que cuando la puntuación sea mayor que por ejemplo 10 en ese caso digamos que he ganado el juego vamos a verlo vamos a por ejemplo la pelota donde tengo una condición de por siempre entonces voy a ejecutar un control y voy a hacerme una pregunta es cierto es cierto que la puntuación es mayor que 10 es cierto que la puntuación es igual que 10 en ese caso he ganado vamos a hacer lo siguiente vamos a decirle al programa vamos a verlo que me voy a operadores y en operadores vemos que con esta forma de diamante esta forma de bloque tenemos unos operadores de menor que igual que o mayor que entonces en este caso voy a hacer lo siguiente es cierto que la puntuación es igual vamos a poner aquí datos puntuación ponemos la puntuación aquí es cierto que la puntuación es igual a 10 en ese caso entonces pues puede ocurrir cualquier cosa puede ocurrir que simplemente por ejemplo diga hello durante dos segundos pues diga has ganado durante dos segundos vamos a verlo pulsamos play tenemos el juego en marcha la variable posición ahora vale 2 la posición vale 3 puntuación quería decir no posición puntuación vale 4 puntuación vale 5 voy a hacer que el juego vaya un poco más rápido vamos a ver mover 30 pasos 23 4 6 7 [Música] voy a modificar un poco el rebote vaya vamos a hacer un segundo girar vamos a ver 70 grados 8 y has ganado y tenemos ya el movimiento de has ganado en la pantalla en este caso cuidado porque si la puntuación es igual a 10 ve como el juego se queda un poco bloqueado porque está diciendo has ganado durante todo el tiempo vale por eso eso está añadiendo un poco de retraso al juego pero en definitiva ya es una manera de evaluar si es cierto o no es cierto qué el objeto está en la pantalla voy a crear en este caso un nuevo elemento vamos a crear un nuevo elemento para este juego y voy a crear un nuevo sprite entonces voy a hacer un check como el botón ok ok y vamos allá vamos este ok vamos allá me voy a evento al presionar la bandera le digo que en movimiento quiero ir a x0 y 0 la continuación lo que voy a hacer en este caso va a ser algo sencillo que va a ser en primer lugar en apariencia quiero esconder quiero esconder este objeto y más adelante por siempre sí es cierto si es cierto la puntuación sí es cierto que la puntuación es igual a 10 en ese caso quiero mostrar esto quiere decir que en cualquier momento dejémonos como vamos a momento voy a eliminar una cosa voy a eliminar empezamos el juego y haber ocultado este sprite vamos a verlo a presionar la flecha ir a x0 esconder vale interesante debería haberlo escondido y ahora si la puntuación es igual a 10 debería mostrar esa flecha y ahora si aparece la condición en cualquier momento de ganar vuelva a ejecutar y comprobamos como es cierto que cada vez que la puntuación es 10 he dicho 10 podría ser 20 puede ser lo que tú quieras pero esa v sale en pantalla y nos indica que hemos ganado el juego ya tenemos la condición de ganar vamos a hablar a continuación de la condición de perder lo que quiero ahora es que en el momento en el que la pelota llegue a la parte de abajo y llegar a la parte de abajo es pues que la y sea igual a menos 150 por ejemplo si la pelota está aquí quiero que el programa diga has perdido quiero que aparezca la operación de que he perdido para ello lo que voy a hacer es trabajar con la pelota y por siempre hacer lo siguiente sí es cierto sí es cierto que la posición en movimiento sí es cierto que la posición en x es menor que algo es menor que hemos dicho 150 así que me voy a operadores me voy a el operador de menor qué y digo sí es cierto que la posición en y de este objeto es menor que hemos dicho menos 150 en ese caso el juego se reinicia y lo que ocurre en ese caso es que por ejemplo la pelota debe ir a 0 0 acordémonos que estamos editando el sprite de la pelota por eso cuando yo digo ir a 0 0 quiere decir la pelota va a 0 0 vamos allá vamos a comprobarlo y ahí estamos como podemos comprobar ahora voy a bajarle un poquito de velocidad alguno me voy a play estoy jugando ahora la pelota cae bueno ahora lo que hay ahora va a caer y cuando cae vuelve a salir vuelve a salir de el príncipe cuando llegó a diez puntos es cuando realmente ha llegado es cuando realmente pierdo el juego evidentemente si hablamos de que el juego se reinicia hablamos del concepto de vidas entonces las vidas una vez más es otro dato variable la puntuación es un dato que va variando la puntuación va subiendo las vidas es un dato que va bajando la puntuación las vidas van bajando a medida que a medida que la pelota cae al suelo entonces voy a ir a datos voy a crear otra variable la voy a llamar vida y es una variable compartida de momento para todos los objetos más adelante haremos ejercicios en los que crearemos variables únicas para cada uno de los objetos pulsamos ok creamos una nueva variable tenemos la variable puntuación y la variable mira tenemos allá arriba y ahora voy a hacer lo siguiente cuando arranca el juego la vida voy a poner cinco vidas así que cada vez que arranca el juego como podemos comprobar la puntuación es 0 pero vidas es igual a 5 y ahora cada vez que la pelota cae al suelo cada vez que la pelota cae al suelo en ese caso me voy a cambiar vida por menos uno menos uno quiere decir que le quitó un número le quitó un valor a la vida vamos a comprobar si es cierto tenemos por aquí el juego ya en funcionamiento ahora voy a dejar que la pelota caiga y la vida va a ser 43 ahí fijémonos que no llego bien y podemos fijarnos como es cierto que si la pelota cae al suelo las vidas van bajando y ahí evidentemente lo que tendríamos que hacer ahora si es una condición de pérdida en el que si las vidas llegan a cero en ese caso pues rompa el bucle salga un mensaje y reinicie el juego completo lo que haga falta en definitiva y ahora para finalizar lo que puedo hacer es parar los bucles para dar el programa cuando se produce la condición de pérdida voy a crear un nuevo objeto vamos a trabajar con un objeto por ejemplo este es como un game over digamos ponemos en la pantalla y le decimos cuando presionamos la tecla de bandera cuando arrancamos el juego en primer lugar escondemos este bloque a continuación una vez que se esconde este bloque yo me pregunto por siempre me pregunto si es cierto que las vidas son menores que 0 o que la vida es igual que 0 por ejemplo entonces dijo es cierto que la vida es igual a cero en ese caso voy a decir que quiero mostrar quiero mostrar este bloque y además dentro de control voy a usar un bloque llamado detener el bloque detener que además si te fijas no tiene continuación es como una especie de game over lo que hace es parar completamente el programa vamos a ejecutarlo voy a perder vidas pierdo pierdo pierdo pierdo y pierdo vida y lo que ocurre como podemos ver es que el programa se detiene yo he puesto aquí una equis tú evidentemente puede exponer el dibujo que quieras un game over una calavera un texto personalizado de has perdido el juego lo que queramos pero en definitiva tenemos ya una condición de ganar-ganar por ejemplo sería pues ir al segundo nivel ya dejó la creación del segundo nivel un poco a tu disposición pero la idea en este caso es que ya tenemos un juego además un juego conocido como es el arkanoid desde el punto de vista de que el juego se mueve tienes interacción tienes múltiples objetos tienes una condición de ganar y tienes una condición de perder como vemos poco a poco vamos profundizando en nuestros conocimientos del programa déjame dar un repaso a lo que hemos hecho porque en este ejercicio han aparecido muchos nuevos elementos en primer lugar ha aparecido el concepto de crear diferentes bloques diferentes elementos el bloque de pádel es el más sencillo realmente simplemente se mueve con las flechas la bola de fijas tiene tres bloques grande entonces la bola tiene que preguntarse tiene que hacerse tres preguntas es cierto que estoy tocando aquí tocando el jugador y lo pliego pongo un par de comentarios este bloque es el bloque de tocando tocando bloque tocando el bloque y este bloque es la condición de perder condición de quitar vida una ponemos comentarios para un poco recordar y refrescar qué es lo que hacía cada parte del programa esto es lo que este bloque lo llamaríamos condiciones iniciales acciones iniciales que son realmente estos cuatro bloques de aquí dentro de cada uno de los bloques recordamos que esto es lo que ocurre vamos a hacer esto vamos a tener un poco más de espacio ahora volveremos al sitio esto es 10 primeros bloques y esto es creación de los 10 segundos bloques y esto es para cada uno de los clones para cada clon conexión con la pelota tenemos esto por aquí esto es la condición condición de éxito es decir me paso el nivel me paso el juego y esto es la condición de finalización es decir pierdo el juego con esto este juego puede quedar mínimamente finalizado y con esto hemos profundizado más dentro de nuestros conocimientos de scratch ya realizando un juego que no es simplemente mover un gato por pantalla sino un juego pues como muy muy muy parecido a los juegos que conocemos los juegos que hemos visto ya los que siempre hemos jugado vamos con un nuevo ejercicio donde en este caso nuestro objetivo es reproducir un juego conocido por todos como es el pacman y además en este nuevo proyecto voy a crear un nuevo proyecto vamos a llamarlo curso scratch ejercicio 4 en este caso si observo la galería de sprites que incluye el programa observo que realmente no hay ningún sprite que me pueda ayudar a trabajar con un fondo o un juego de tipo packman así que llega el momento de que empecemos a crearnos nuestros propios sprites en primer lugar vamos a crear un escenario nuevo así que a continuación en lugar de crear un fondo nuevo a partir de una imagen predeterminada de la galería voy a hacer clic dentro de este lápiz para dibujar un nuevo fondo al hacer clic en dibujar un nuevo fondo veo cómo aparece un pequeño editor de imágenes un pequeño editor de fondos yo en este caso lo que voy a hacer es en primer lugar seleccionar el color negro de momento y voy a usar el cubo de pintura y voy a hacer clic simplemente para que todo el fondo esté ahora dibujado de color negro voy a ponerle un nombre así que en este caso se va a llamar fondo pacman y de momento lo voy a dejar así el momento lo voy a dejar así en el sentido de que más adelante haré carriles para que nuestros personajes puedan circular pero de momento lo voy a dejar simplemente de color negro lo mismo voy a hacer con los sprays momento tengo el spray del gato pero ocurre que este gato no me sirve de nada para trabajar con pacman así que voy a hacer clic con botón derecho lo voy a borrar y voy a crear un nuevo objeto voy a crear un nuevo sprite pero no lo voy a crear desde la librería sino que lo voy a crear pintando así que hago clic para dibujar un nuevo objeto y en este caso vamos a ver que este objeto será el personaje protagonista vamos a escoger un color amarillo el personaje principal del pacman es un círculo así que voy a hacer un círculo relleno de color amarillo pincho y arrastro y tengo aquí el personaje batman si tengo miedo de que quizás el círculo no sea perfecto lo que puedo hacer es pulsar y mantener pulsada la tecla mayúsculas al pulsar y mantener pulsada la tecla mayúsculas lo que ocurre es que estoy forzando a que la altura y la anchura sean exactamente iguales tengo ya por aquí mi primer objeto y ahora lo que quiero es crear un nuevo disfraz este sería el comecocos en el momento en el que tiene la boca cerrada comecocos tiene dos pasos dos disfraces uno con la boca cerrada y otro con la boca abierta así que ahora lo que necesito es hacer botón derecho y duplicar este disfraz si el disfraz original se llamaba disfraz 1 pues al duplicar observo como tengo un disfraz 2 y ahora simplemente con la goma de borrar lo que voy a hacer desde el centro aproximadamente borrar haciendo clic y arrastrando para como podemos ver en la pantalla realizar este borrado cuidado porque parece que me he dejado algún pixel ahora sí tengo ya estos dos disfraces donde el comecocos en unos tiene la boca cerrada en otros tiene la boca abierta a partir de aquí ya depende un poco como queramos hacer nuestro personaje voy a hacer una goma de borrar un poco más pequeña no tan pequeño y más grande para hacer que cuando el comecocos tiene la boca cerrada pues no la tenga tan cerrada sino que tenga un pequeño hilito de color negro verdad dentro de el propio juego podemos afinar un poco más podemos refinar podemos ajustar podemos pintar lo que sea necesario para acabar de afinar este sprite ahora vuelvo a borrar cada uno puede pintar como quiera bien lo voy a dejar aquí y más o menos este sprite está bien como está tengo un objeto voy a llamarlo protagonista así que vamos a ir a información y dentro de información el objeto voy a llamarlo el protagonista o un jugador así que mejor vuelvo atrás vamos a verlo en estilo de rotación vamos a hacer que se rote en cualquier dirección ahora leemos del estilo de rotación para los fantasmas y vamos a por fantasmas vamos a crear un segundo sprite tengo el personaje vamos a por un segundo que así que mejor vamos a darle primero programación y ahora continuaremos con el resto de personajes con los fantasmas bien me voy a programar el comportamiento de este sprite me aseguro de que el jugador esté seleccionado en este momento y voy a hacer lo siguiente por una parte en eventos voy a decirle que al presionar la bandera voy a introducir un control de x siempre pedir un control que se va a ejecutar permanentemente siempre sin parar y este control de por siempre en apariencia lo que va a hacer es cambiar el disfraz o más que cambiar el disfraz casi siguiente disfraz va a ir rotando entre los disfraces vamos a comprobar qué se hago así el personaje va variando de un disfraz a otro el problema está en que lo hace tan rápido que casi asusta así que cuando queramos ralentizar la ejecución de un programa simplemente lo que tenemos que hacer es dentro del control usar este esperar esperar no un segundo vamos a verlo sino quizás 0.5 segundos así yo creo que mejor así mientras que el juego se está ejecutando el personaje siempre está en movimiento la boca se va abriendo y se va cerrando ahora quiero cuatro eventos relacionados con teclas y es que al presionar la tecla arriba pasará algo al presionar la tecla abajo algo al presionar la tecla de hecho pasará algo y al presionar la tecla izquierda pasará algo también lo que pasará es que en movimiento el personaje se moverá x pasos vamos a vamos a bueno primero apuntar en dirección y luego apuntar en dirección abajo y mover 10 pasos apuntar en dirección 90 y mover 10 pasos apuntar en dirección menos 90 y mover 10 pasos comprobamos como el personaje se mueve se mueve todas las veces que queramos ahora yo me encuentro con un pequeño problema y es que realmente quiero bueno que este movimiento no sea de 10 en 10 pasos sino que sea quizás de 20 de 30 40 no lo sé pero el problema está en que cada vez que yo quiera hacer un cambio tengo que hacer el cambio en cuatro partes a la vez esto puede ser un poco engorroso entonces cuando se dan ese tipo de situaciones en las que cuando quiero hacer un cambio lo tengo que repetir x veces tengo que pensar que debe existir alguna manera de automatizar ese cambio y esa manera es mediante la creación de una variable dentro de datos así que voy a crear una variable esta variable va a ser para todos los objetos porque quizás más adelante la reutiliza para los fantasmas y la voy a llamar avance es una variable que va a definir cuánto avanza el personaje así que al presionar bandera fijar avance a por ejemplo 30 ya continuación voy a seleccionar la llamada a la variable y la voy a arrastrar aquí y la voy a arrastrar aquí y la voy a arrastrar aquí y la voy a arrastrar aquí y esto lo que va a hacer es que si yo ahora vamos a verlo acciona les doy a play comprobamos como el personaje va moviéndose pero si yo por lo que sea ahora quiero cambiar el avance yo simplemente lo cambio en un lugar lo cambio aquí arriba y se cambia automáticamente para las cuatro direcciones así que usar una variable es un poco engorroso porque hay que crear un nodo más pero a cambio le permite que yo a partir de ahora hago el cambio en un solo lugar y se aplica en cuatro como podrían ser 400 lugares diferentes la idea de la programación es que siempre intentamos ser lo más productivos posibles en el sentido de que tengamos que hacer las cosas una vez y no repetir las varias veces de hecho se suele decir en programación que cuando estamos repitiendo una misma cosa varias veces es que seguro que no lo estamos haciendo del todo bien o que existiría otra manera de hacer las cosas bien continuamos ya tenemos nuestro personaje en pantalla tenemos nuestro personaje por aquí rodando en pantalla ahora dentro de apariencia vamos a ver esto en pantalla completa igual el pacman es un poquito grande verdad es el pacman es un poquito grande en apariencia en la condición inicial pues siempre podemos fijar el tamaño a un 50% por ejemplo y con esto hacemos el pacman más pequeño y tenemos el personaje ya tenemos el personaje principal vamos a por los personajes secundarios vamos a por los fantasmas en este juego vamos a por los personajes secundarios así que voy a crear un nuevo objeto este objeto no vamos a guardar guardar bien entonces vamos a dibujar un nuevo objeto y este objeto va a ser un fantasma así que voy a seleccionar por ejemplo este color azul voy a dibujar un círculo por ejemplo y vamos a hacer un poco de zoom voy a dibujar un rectángulo y ahora con la goma simplemente voy a borrar un poquito control z para deshacer con la goma y borrando y yo creo que ya está bueno ya tengo lo que sería el fantasma principal ahora lo que quiero en este caso es seguir borrando para hacer un par de ojitos poquito por aquí otro ojito por allá y ahora voy a duplicar el sprite para hacer un ojito abierto y ojito abierto por aquí así que tengo dos sprites ojito abierto ojito cerrado vamos a obtener información sobre este objeto este objeto vamos a información y se llama fantasma volvemos atrás vamos a hacer este personaje un poquito más pequeño 30% play para que el tamaño se equipara un poco bueno ya tenemos a nuestro personaje por aquí rodando en pantalla vaya ahora parece que va muy rápido no pasa nada porque cambiamos el avance por ejemplo a 10 y asunto solucionado lo cambiamos una vez y ya está ya tenemos por aquí un comecocos que está un poco acercándose al fantasma pero el fantasma de momento no lo persigue el fantasma no lo reconoce de hecho el fantasma ahora mismo no hace nada vamos a cambiar esto entonces hacemos clic dentro del sprite del fantasma y empezamos a crear su programación entonces vamos a control no vamos a eventos y al presionar el inicio del programa en control añadimos un por siempre y por siempre dentro de apariencia le decimos mostrar el siguiente disfraz esto ha sido exactamente igual que el pacman original lo que hacemos es que el personaje va abriendo y cerrando los ojos tan deprisa que prácticamente no lo vemos por eso le ponemos una espera de 0.5 segundos y con esto yo creo que será suficiente para que ahí lo vemos el personaje vaya abriendo y cerrando los ojos pero este personaje lo que tiene que hacer a continuación es perseguirnos va a perseguirnos aparentemente de forma que vamos a verlo voy a parar el juego de forma que el personaje va a ir rotando aleatoriamente dentro de este bucle vamos a vamos a quitar estos nodos momento vamos a ir a movimiento y vamos a realizar un poco una apunte un apuntar en una dirección vamos a ver yo aquí dentro de la dirección puedo cambiar por ejemplo poner un avance esto no es exactamente lo que quiero pero así que a continuación a continuación lo que voy a hacer es crear una variable o en definitiva decirle al programa que quiero un número aleatorio vamos a ver aquí estamos un número al azar entre 1 y entre 1 y 10 pero claro entre 1 y 10 esto no me da realmente las cuatro direcciones recomendamos que las cuatro direcciones arriba abajo izquierda a derecha son 0 90 menos 90 y 180 así que voy a hacer lo siguiente quiero en primer lugar multiplicar un número al azar hay un número al azar entre 1 y 4 y esto lo quiero multiplicar por 90 esto lo que va a hacer es darme un número entre 90 y 180 realmente puedo poner menos 1 y 2 un número al azar entre menos uno y dos puede ser menos uno puede ser cero puede ser uno puede ser dos si es menos uno menos uno por 90 menos 90 si es 0 0 por 90 0 si es 11 por 90 90 y si es 22 por 90 180 esto quiere decir que con esta pequeña fórmula ya tengo solucionado el apuntar en una dirección aleatoria al azar entre menos 90 y 180 así que apuntar en una dirección que esté en un número al azar entre menos uno y más dos por noventa cuidado porque lo está haciendo rapidísimamente además en este fantasma vemos cómo está rotando voy a poner voy a poner un esperar un segundo ahora fijamos está rotando pero yo lo que quiero en este caso es que este fantasma no rote como el pacman entonces voy a decirle que el estilo de rotación es verde es horizontal esto quiere decir que el personaje realmente está rotando pero no puede rotar más allá de su eje bien volvemos he hecho clic en esta flecha lo soltamos y ahora una vez que haya apuntado en la dirección dentro del movimiento muevo 10 pasos lo muevo 10 pasos sino que realmente mueve la variable avance para eso la he creado compartida entre diferentes objetos los dejamos ahora ahora el pacman lo que está haciendo es que va aleatoriamente entre más diez menos diez no me gusta me gusta 10 hace que igual el avance quedará mejor aquí vamos a verlo play y aquí estoy tampoco me hace mucha ilusión vamos a ponerlo 18 eso parece que está bastante mejor viviendo con esto lo que vamos a hacer es que el personaje digamos pues bueno va a estar navegando por la pantalla de momento está navegando aleatoriamente y por supuesto tenemos que cumplir la condición de que cuando el pacman toque al fantasma pues el pacman morirá donde realizamos esta condición bueno pues hay que tener en cuenta que el pacman no tiene ninguna condición de bucle pero ocurre que el fantasma sí que la tiene en restar o para crear una condición de bucle en el personaje pues bueno puedo utilizar esta que ya tengo así que en este caso voy a usar el sensor y voy a decir es cierto que este personaje es cierto quiere decir un sí condición es cierto que este personaje está tocando el jugador pues en ese caso lo que voy a hacer es parar el juego detener todos el juego parar y aquí pondría un mensaje en la pantalla como game over o algo así vamos a probarlo lea place alias play personaje el fantasma deshago viendo y si yo toco el fantasma claro es que justo justo justo este sí quizás sería aquí ay parece que se ha detenido por fin lo ha detectado muy bien entonces ya tenemos una pequeña colisión lo único que pasa es que solo se hace esta pregunta una vez cada una vez cada segundo con lo cual probablemente bueno igual sí que me interesaría hacerlo al contrario borro por aquí me voy al jugador pongo una condición de bucle es decir pongo una condición ya tenían por siempre ya tenía un por siempre me acordaba que tenían por siempre pues en este caso lo que voy a hacer es que incluso la voy a poner aquí entonces voy a decir si es cierto qué estoy tocando a un fantasma en ese caso se acaba el juego aquí puedo seleccionar este bloque lo duplicó para colocarlo aquí lo duplicó para colocarlo aquí lo duplicó para colocarlo aquí una vez más cuando en un programa estamos duplicando cosas tenemos que pensar que hay algo que probablemente no estemos haciendo bien entonces en este caso al estar duplicando está operación qué pasaría si tuviera que realizar una modificación bueno pues no estaría bien entonces me voy a ir a más bloques y dentro de más bloques es un apartado que hasta ahora no habíamos revisado todavía yo tengo la opción de crear un bloque personalizado crear una función personalizada en este caso lo que voy a hacer es crear un nuevo bloque y este bloque se va a llamar comprueba colisión comprueba colección fantasma así que estoy definiendo estoy definiendo la el bloque de colisión fantasma y por tanto lo que hago es poner una vez el bloque aquí borró este bloque borro este bloque borro este bloque y esto lo que hace es definir crear un nuevo bloque personalizado que yo me acabo de crear y decir siempre que yo llamé a comprueba colisión fantasma lo que va a ocurrir es que se va a ejecutar este bloque de aquí se va a ejecutar este conjunto de bloques se va a ejecutar ese comportamiento yo ahora simplemente arrastro arrastro arrastro arrastro y yo sé que a partir de ahora si yo quisiera hacer una modificación en el comportamiento de comprueba colisión fantasma simplemente tendría que cambiar la modificación tendría que hacer la modificación aquí dentro una sola vez y no cuatro veces y se aplicaría a tiempo real en las 4 o 400 copias que hubiera hecho así que vamos a ir y empezar a ver que podemos crear nuestros propios bloques dentro de scratch lo cual es muy importante para aprender a ser más productivos comprobamos que todo funciona correctamente así que le doy a play por fantasmas y quiere escapar y aquí qué debe ocurrir ahí es que el juego para es decir en cuando el personaje toca al fantasma pues el juego se acaba el momento el juego se acaba se nota porque la bandera ya no está verde se nota porque estoy en el modo de stop se nota porque el fantasma deja de moverse vale así que de momento lo dejamos así ya tenemos un personaje ya tenemos un fantasma ahora quiero tener más fantasmas para que el juego sea más divertido y más complicado para crear más fantasmas lo que voy a hacer básicamente va a ser realizar oraciones así que vamos por aquí a realizar un clon vamos a cuando añadimos cuando creamos el principio vamos a crear un clon pero claro no quiero crear un clon lo que realmente quiero es crear x clones cuantos clones quiero vamos a suponer que quiero 20 así que voy a crear un clon esto lo voy a repetir 20 veces esto lo pongo aquí una vez y por siempre se ejecuta a continuación así que cerramos pulsamos play vamos a mover el fantasma aquí al centro pulsamos play y comprobamos como a continuación van a salir serían 10 fantasmas claro hay un problema y es que los 10 fantasmas están ahí metidos están quietos porque cuando se clona un objeto automáticamente no herir a toda esta lógica no pasa nada porque entonces usamos el bloque de tipo sombrero llamado al comenzar como clon este bloque es el que define qué es lo que ocurre puedo aplicar esto qué es lo que ocurre cuando el clon se crea y ahora sí vamos a cerrar por aquí vamos a darle a play de nuevo y ahora sí que ya empezamos a ver cómo hay diez fantasmas que se van moviendo a lo largo del escenario muy bien ahí los tenemos vale vamos a también decirle al programa que cuando el juego arranca aunque el fantasma esté lejos en movimiento quiero que el fantasma esté en la posición 0 0 quiero asegurarme que el fantasma empieza en la posición 0 0 ahí lo tenemos y bueno ya y ahora veremos dónde empieza nuestro personaje una vez que tenemos el personaje vamos a crear un nuevo sprite que es el sprite de la vida así que creó un nuevo sprite voy a crearlo con una pelotita de color blanco la pelotita así más o menos a ver esto no se llama objeto esto se llama vida ya lo tenemos ahí ya tenemos ahí la vida y lo que quiero ahora es que cuando el programa empieza mediante cloración es tengamos en cuenta que en el pacman si saco por aquí un pacman batman veremos cómo los pacman están llenos de bolitas de estas de bolitas de vida entonces la idea es que quiero llenar la pantalla de bolitas voy a decirle que al presionar tecla presionar comenzar quiero que quiero que este objeto esté ahora quiero empezar a crear muchos clones entonces para crear muchos clones voy a hacer lo siguiente voy a ir a repetir algo voy a ir a repetir una operación varias veces voy a decirle x cuánto es el avance por cierto x 10 x menos 100 y menos 100 a ver esto cómo sería hace menos 150 150 esto está haciendo que la pelota vaya ahí allá de esa posición yo ahora quiero repetir equis veces una operación que es clonar así que voy a realizar un clon de mí mismo pero voy a mover movimiento mover y quiero mover cuántos pasos pues avance esto ha creado esta variable y crear un clon esto lo quiero repetir 10 veces vamos a comprobarlo comprobamos cómo se crean 10 clones es correcto y quiero hacer el sprite un poquito más pequeño es leve un poco grande pues lo voy a apariencia cambio el tamaño al 25% ejecutamos vale esto ya tiene otro aspecto ahora quiero 110 quiero 20 clones ahora bien si igual 1020 son demasiados quiero 15 o 16 bueno esto ya tiene otro aspecto ahora quiero repetir esto mismo esto es un concepto un poco complejo porque es una animación de bucles de repetición ya que en definitiva quiero repetir algo en horizontal y en vertical esto es un problema que suele dar bastante en el desarrollo de juegos entonces cuando hago esto lo que hago es introducir otro bucle repetir dentro del primer bucle repetir esto es lo que se llama una animación de bucles de repetición entonces repito también 16 veces en este caso pues vamos a verlo a ver mover avance pasos [Música] vamos a ver voy a decirle a ver mover a avance pasos primero muevo un paso y luego giro a punto en dirección en dirección abajo esto es una sola vez y crear cloro y crear un clon el mismo cuando acabo lo que hago es girar hacia la derecha realmente este no es necesario es necesario aquí está y mover este es necesario avance bien esto lo que hace es que crea estos de aquí pero luego no se reinicia entonces lo que tengo que hacer en este caso es reiniciar el avance vamos a verlo entonces este es movimiento apuntar en dirección 90 mover x pasos ahí está ahora me hace falta subirlo hasta arriba así que para subirlo hasta arriba simplemente lo que tengo que hacer vamos a ver voy a mover en dirección 90 nuevo avance ahora a punto en dirección hacia arriba nuevo avance por cuanto pues avance por 16 así que muevo operadores avance x 16 y ahora si esto lo que va a hacer es crear me un tablero de equis bolitas aquí tenemos las bolitas ahora el personaje se puede ir moviendo el personaje técnicamente puede ir empezando a comer bolitas evidentemente lo que quiero con cada una de las bolitas es que en el caso de que el personaje esté encima de la bolita pues desaparezca la abuela entonces lo que haré en este caso es simplemente decirle al programa que para cada uno de los clones es decir para cada uno de los clones introducimos una condición por siempre hay muchas condiciones en este caso bueno ahora veremos y si se produce si es cierto sí es cierto la condición de que estoy colisionando con el personaje en ese caso esconder es decir esconde esta bolita si está tocando al personaje bandera y vamos a ver si es cierto que conforme voy comiendo bolitas las bolitas se van escondiendo en pacman al comer bolitas voy ganando puntos entonces he cuidado porque el juego ha acabado en cuanto he tocado un fantasma bien así que lo que haré en este caso es que necesito una variable llamada puntuación crea una variable la llamo puntos una variable para todos los objetos por qué no y en este caso voy a decir por ejemplo que cada vez que como una bolita pues ganó un punto si esto es cierto me voy a operadores vamos a verlo vamos a verlo no está aquí en datos y es cambiar puntos por 1 si está tocando al jugador cambiar puntos por 1 lo que equivale a que ganó un punto vamos a ver si es cierto la puntuación está allá 0 empezamos el juego ya tengo un punto porque me acabo de comer una bolita sin quererlo y vamos allá vamos comprobando como a medida que voy avanzando si si intentó pasar por un sitio por el que ya he pasado no sumó puntos porque ya no me puedo comer esa bolita porque ya me la he comido antes pero si voy pasando por nuevos lugares pues comprobamos cómo efectivamente voy comiendo nuevas bolitas y por supuesto en el momento en el que me solapó con un fantasma pues el juego se acaba game over porque es una de las condiciones de este juego que estamos desarrollando ya tenemos el comportamiento del fantasma tenemos el comportamiento del jugador tenemos el comportamiento de las bolitas pero este juego es un poco libre no tiene ahora mismo una restricción y el juego del pacman original pues como sabemos hay pues unos laberintos por los cuales no podemos pasar o hay unas barreras de color verde que no podemos superar vamos a continuación a realizar estas barreras dentro de dentro de scratch y vamos a ver cómo podemos colisionar con las propias maneras vamos allá volvemos a scratch vamos a hacerlo en el vídeo siguiente vamos a trabajar ahora con el fondo entonces desde el punto de vista del fondo voy a hacer algo parecido a lo que he hecho anteriormente para crear fantasmas y para crear al personaje que es crearlo dinámicamente entonces voy a crear un nuevo sprite pero lo voy a pintar este sprite vamos a acercarnos un poco este sprite va a ser una barra de color azul por ejemplo de este color azul va a ser una barra más o menos con esta forma con esta dimensión voy a intentar hacerla más o menos simétrica y esto será un obstáculo del juego de hecho ya lo tenemos ahí ahí lo tenemos ahora veremos si nos vemos quizás un poco más pequeño o un poco más grande no es importante ahora dentro de este obstáculo vamos a ir a programas ahora por si acaso y bueno lo que quiero es crear dinámicamente elementos en la pantalla quiero crear dinámicamente un laberinto entonces para ello seleccionó este objeto me voy a evento cuando presiona la tecla este elemento podría estar en la posición menos 150 unos 150 150 es decir en la misma posición que la bolita pero además además de todo esto quiero volver a repetir este paso de repetir 10 veces en x y repetir 10 veces en y es decir voy a repetir este proceso de la animación de bucles repetitivos para que veamos exactamente lo que hace a continuación a continuación voy a crear un clon esto va a repetir 20 veces no perdona 100 veces algo y voy a buscar un bucle condicional sí que dice en cada una de esas 100 veces se repite 10 veces y por cada una de estas 10 veces repite otra vez 10 veces y por cada una de esas 100 veces en 3 pregúntate si es cierto un número es igual a otro y el número es número al azar entre 0 y 1 y pregunto si esto es igual a 1 por ejemplo o sea una de cada dos veces dibuja realmente el objeto así que vamos allá vamos a mover cuántos pasos pues haga mover x pasos para cada uno de estos hacia abajo muevo según la variable avance y si es cierto creo un clon vamos a verlo de un clon donde estás crear un clon estoy aquí o un clon de mí mismo vamos a ver lo ejecutamos hay veces que crea un ladrillo hay veces que no lo crea una vez que finaliza esto cuando acaba esto apuntó en dirección apuntó en dirección hacia arriba muevo en operadores multiplicar 10 por ejemplo 10 pasos y 10 por el avance vamos a verlo parece que le falla el avanzar y avanzar 10 pasos y esto es porque este movimiento tiene que apuntar en dirección 90 ahora sí ya empezamos a tener un laberinto además alineado lo cual está bien cuidado porque justo las barras azules coinciden con las bolas lo que quiero es lo contrario que hagan carriles para las bolas así que este menos 150 se va a convertir en menos 125 por ejemplo haya empezado a hacer carriles y ahora me hará falta hacer que el personaje sea un poco más pequeño así que voy al personaje dejar tamaño al 10% las bolitas por tanto probablemente también tendrán que ser más pequeñas al 10% o saberlo ahora personaje está ahí es ahora quizás el personaje es demasiado pequeño así que bueno es una cuestión de ajustar tamaño somos el personaje lo fijo al 20% las bolitas no han aparecido lo que cambiaron 5 % de hecho no han cambiado no han cambiado vamos a fijar este tamaño al crear un clon entonces fijamos el tamaño del 5% veamos fijamos el tamaño 5 % vale de alguna manera no están decreciendo estoy en la bola de vida no me está haciendo mucho caso no es demasiado preocupante pero bueno pero hay que ver por qué no funciona vale dicho esto empezamos ya a tener carriles voy a hacer también los carriles un poco más pequeños así que cojo el objeto lo llamo en info lo llamo pared vuelvo atrás y al presionar la pared también quiero cambiar el tamaño en este caso al 50% [Música] dejar tamaño al 10% recordamos otra vez tenemos el problema de los clones entonces al crear cada clon el clon arranca al comenzar como clon duplicó todo esto apariencia fijar tamaño al 25% o al 10% más 25% recargamos y bueno vemos que efectivamente estamos igual no hay demasiado problema lo que quiero ahora es que el personaje realmente pueda empezar a colisionar con las paredes entonces para ello voy a seleccionar el personaje y voy a decirle que el sensor si es cierto que el personaje tanto siempre realmente sí es cierto que el personaje está tocando el color azul aquí hacemos clic fíjate que he hecho clic en este color aparece una mano la mano me permite seleccionar un color selecciono el color azul ya tenemos ahí el color sí es cierto esto en ese caso bueno no podría colisionar vamos a verlo si estoy tocando el color lo que sea en este caso no me debería dejar pasar vamos a ello para hacer la colisión yo creo que la podemos hacer mejor creando una nueva función entonces hacer lo siguiente voy a definir un bloque crear un bloque nuevo se va a llamar comprueba conexión pared vamos a definirlo por aquí [Música] para hacer esto más pequeño temporalmente entonces cada vez que queramos realizar un avance lo que hacemos es lo siguiente en primer lugar comprobamos si está tocando el color azul y si está tocando el color azul en ese caso lo que hago es anular el avance esto quiere decir que giro 180 grados avanzó avance pasos y por último vuelvo a girar 180 grados para dejarte en el estado en el que estaba y esto se llama comprueba colisión pared entonces me voy a más bloques me voy a comprueba colisión pared y lo pongo ahí dentro y como estamos viendo no tengo que repetir todo esto cuatro veces para cada uno de los bloques yo creo que más o menos ya lo tenemos vamos a verlo me voy a play aquí vemos bueno allí me escapado curiosamente pero vemos que entró por aquí y no puedo ir hacia la derecha no puedo ir hacia la derecha de hecho me quedado un poco atrapado empezamos ahí a marcar una colisión y en ella es que el personaje tendría que ser más pequeño porque está colisionando demasiado efectivamente el personaje debe ser más pequeño para que se consiga meter fijo el tamaño al 15% le doy a reproducir ya he topado con un fantasma y ahí cuidado porque parece que tomado con un fantasma también pero vale el problema es que sigo pudiendo pasar sigo pudiendo pasar ya que el programa considera que es alto de pared a pared de cuidado con los fantasmas de hecho ahora tengo que huir de ellos los fantasmas por cierto tampoco deben poder ser capaces de atravesar las paredes y ya tenemos un principio de colisión sobre todo lo importante es que el comprueba colisión pared lo que está haciendo en este caso es permitirme es decir especificar si el personaje realmente está tocando la pared o no está tocando bueno voy a definir un poco mejor esto vamos a ver y hacer lo siguiente vamos a ver si lo que podría hacer es decirle al programa quiero repetir algo varias veces quiero repetir todo este bloque 10 veces entonces voy a mover avance / 2010 vamos a verlo operadores número / / número avance dividido entre 10 repetir diez veces estaba aquí y este con cuidado vale repetir diez veces nuevo ahora es cierto que estoy tocando el color en ese caso lo que hago es tirar girar 180 grados y mover y este es el peligro borro nuevo nuevos 10 pasos nuevo avance pero esto no me va a dar correcto porque el personaje rebota o sea comprobamos que efectivamente rebota comprobamos cómo efectivamente rebota pero me rebota más allá de la cuenta vale entonces con esto lo que tenemos que hacer es idear esto vamos a hacer en el siguiente ejercicio un sistema de colisión con las paredes veremos que simplemente lanzando una cosa se llama proyección de rayo vamos a ser capaces de detectar que el personaje realmente está colisionando con una zona de color azul por ejemplo lo que haga falta y a partir de ahí pues que el personaje técnicamente no pueda acceder a esa zona mientras tanto aprovechamos para hacer otras cosas como por ejemplo los fantasmas están caminando parece por dentro de las paredes entonces voy a editar el sprite del fantasma disfraz del fantasma simplemente voy a comentar que por aquí hay una herramienta de selección entonces en este caso voy a realizar esta selección y una vez que realizó una selección puedo modificarla la selección tenemos que parar el juego para ver los cambios ahora sí le hizo otra selección muevo un poco el personaje play tenemos que mover al personaje hasta que comprobemos hasta que comprobemos que está en la posición correcta entonces selecciono el personaje lo muevo vamos a moverlo aquí y ahora parece que si ya los personajes están dentro más o menos de los carriles todavía está un poco alto voy a bajar y lo que estoy buscando es que el personaje el fantasma coincida con los puntitos como en este caso ya está empezando a coincidir en este caso es probable que el segundo disfraz ya no me sirva así que voy a eliminar el segundo disfraz duplicó el primero lo modificó era volviendo a la programación del fantasma en el por siempre habíamos quitado al final lo del disfraz entonces devuelvo el siguiente disfraz y al comenzar como clon también le pongo el siguiente disfrazo ahí lo tenemos fijémonos en este caso qué ya tenemos a los fantasmas moviéndose y abriendo los ojos problemas que hemos tenido que modificar algo en dos sitios diferentes pues es un buen momento para crear un bloque predeterminado llamado bucle fantasma ok y en el bucle fantasma ponemos esto borramos este bucle y esto va aquí y esto va aquí y así sólo lo tenemos que definir una sola vez bien estoy comprobando cómo se mueven los fantasmas voy a aprovechar para hacer otra operación con el laberinto y es que dentro del bloque del laberinto cada vez que creo uno de estos bloques lo que quiero es con un número al azar especificar si debe aparecer a 0 o debe aparecer a 90 grados así que voy a crear otro bucle sí voy a volver a hacer otro número al azar entre 0 y 1 no es igual a 1 por ejemplo y si esto es cierto voy a decir que apunto en dirección 90 grados ok 90 grados y en definitiva siempre vuelvo después de esto a apuntar en la dirección 180 si esto es correcto cuando ahora reproduzco vamos a verlo a punto en dirección 90 parece que nunca está siendo cierto este crear clon no va aquí si no que va este borro pero lo que ha ocurrido en este caso es que he perdido el control z recuperar borrado menos mal borro esto vamos a ver recuperar borrado sí es cierto estoy aquí a apuntar en dirección 90 y crear un clon a apuntar en dirección 180 borramos ejecutamos y ahora si estamos viendo como en cada uno de estos elementos pues aparece como un pequeño laberinto vamos allá tenemos estos puntos blancos podemos fijar el tamaño una vez más sea más pequeño vamos a ver si lo podemos ajustar dado que parece estado consultando y parece que el tema de los tamaños causa problemas en general con los clones bueno siempre puedo editar el disfraz y rescatarlo a mano entonces grito lo hago más pequeño manualmente y con esto ya tengo la primera parte es escalar el laberinto escalo también la vida selecciono este objeto lo que seleccionó este objeto más pequeño pulsamos play y poco a poco vamos llevando al tamaño que queremos en este caso vamos a ver los nodos año este nodo ya no hace falta esto fuera lo mismo por aquí bien aún así parece que recuerda el tamaño anterior con esto como podemos observar voy a desactivar temporalmente en el personaje él comprueba collection pared activarlo simplemente lo arrastró fuera lo desconectó también puedo hacer lo siguiente bien puedo mantenerlo conectado y lo que desconectó es una sola vez el bucle sí esto es la conexión fantasma lo que quiero desconectar realmente es esto bien cuidado con el personaje porque era el personaje no coincide con las bolas vamos al personaje vamos a su disfraz necesitamos hilo refinamos en definitiva probablemente me haga falta repetir un disfraz pero bueno no pasa nada que tenga que estar más arriba así que bueno lo ajustamos todo lo que haga falta hasta que el personaje coincida con las bolas ahí estamos y es probable que me haga falta eliminar este disfraz volverá a duplicarlo y si es necesario evidentemente volver a editar pero ten en cuenta que en este caso el personaje deja de estar en el centro lo cual es es previsible que pueda tener problemas al rotar para una óptima rotación el personaje debería estar centrado entonces voy a eliminar este sprite creo que el personaje rota que es algo que no ocurre con otros sprites voy a asegurarme que lo muevo a 0 0 lo duplicó vamos a verlo duplicó borro y aquí lo tenemos entonces se hará pulsamos play comprobamos como lo tenemos en marcha y ahora simplemente tendríamos que ajustar el nodo d al presionar colocar el personaje en el sitio el sitio sería por ejemplo en movimiento a la posición – 150 150 para que la posición coincida con la de las bolitas como ahora si el personaje va comiendo de manera prácticamente perfecta las bolitas cuidado porque ha colisionado con un personaje con un fantasma vamos también las bolitas vamos a verlas las ruedas también vamos a comprobar que va a menos 150 el personaje va a menos 150 ahora todo el mundo va a menos 150 aquí está y el personaje va a 0 0 a ver los disfraces voy a eliminar un momento este disfraz y nos aseguramos de la alineación de todos los objetos del juego estás más ahora coinciden con las bolitas estoy viendo porque de vez en cuando hay algún fantasma que se mueve menos de la cuenta vamos a ver porque puede ser vamos a revisar la programación de los fantasmas así que en principio no tendrían por qué funcionar incorrectamente bien es posible que pueda ser por un glitch puede ser por un error dentro del sistema vamos a afinar más las paredes para afinar las paredes tenemos que hacer lo siguiente selecciona la pared le digo que quiero ir a menos 130 ahora estoy bien en x pero no en mi y así que menos 145 al contrario unos 135 sabes la alineación de este bloque de pared la alineación está casi perfecta pero no perfecta del todo ahora está perfecta en y pero no debe esto los 140 ahora parece que sí y lo que estoy comprobando es que realmente se genere un generador de laberintos vamos a trabajar un poquito el sprite y decirle que este sprite estará alineado aquí es un poquito más grande un poquito más pequeño realizamos [Música] un poquito más pequeño todavía esto ya se parece bastante más vamos a verlo pantalla completa a falta de afinar píxeles pero y por supuesto hay que hacer la colisión afinar un poco la posición del jugador a menos de 240 el personaje 145 para que el personaje esté justo en las bolas ahora sí está perfectamente dentro de las bolas hay que ajustar por supuesto la extensión del del mapa pero básicamente ya tenemos un comecocos hay que solucionar la colisión por supuesto pero empezamos a tener un comecocos en pantalla funcionando la detección de la colisión por parte del programa es compleja desde el punto de vista de los nodos es un proceso de hecho por si lo quieres buscar que se llama right casting que es trazado de rayos entonces he estado pensando una manera sencilla de como realizar este tipo de colisión teniendo en cuenta que el fondo es negro voy a hacer es que voy a tirar una línea oscura y oscura cuidado va a ser de hecho una línea esa línea la voy a tener también desde el segundo sprite y lo que va a hacer el programa que hace el personaje no se ve pero está ahí es decir no se ve pero el personaje está tirando la línea entonces no se ve que se verá mejor sí cambia un escenario a blanco prácticamente todavía no sabe pero el caso es que está allí entonces vuelvo a cambiar el escenario lo que hago es definir si el personaje está condicionando o no me voy al personaje le digo comprueba la colisión pare voy a hacer una rodilla voy a decir que quiero detener la ejecución se está condicionando con la pared entonces definitivamente colisión a ver comprueba la conexión para el nuevo claro comprueba el conexión para digo es cierto que está tocando el color azul en ese caso vamos a verlo sí es cierto que todo el color azul por aquí el juego debe finalizar es este color el que estoy tocando [Música] [Música] si el personaje está tocando [Música] caamaño al 50% aquí yo tenemos más ahí está creo que se puede ver se puede ver como el personaje tiene como una especie de varilla esa varilla detecta la colisión detecta la colisión con en la pared entonces ahora él ha detectado vamos a variar esto al 20 por ciento de forma que en cierta forma se sigue habiendo la varilla cuidado vamos al 30% ahí se ve la varilla pero cuando intentó atacar por aquí es cuando ya no me debe dejar vamos a afinar al 25% bien pues quiero decirle al programa que antes de avanzar en un momento dado lo que tiene que hacer es asegurarse si la varilla está y colisionando con algo bueno entonces comprueba colisión fantasma no quiero detener esto era sólo una prueba conceptual pues si está tocando el fantasma entonces nada vale y dale esto es la colisión fantasma esto es correcto y ahora digo sí es cierto realmente necesito un falso sí es cierto algo y si no es cierto y si no es cierto en ese caso mueve el avance es decir lo que hace es comprobar si está tocando el color y si lo está tocando en ese caso es que no puedes avanzar y si no lo está tocando es que en ese caso puedes avanzar vamos a ver funciona así que vamos a ver momento porque estoy es doble al avanzar doble simplemente lo que tengo que hacer es no avanzar no a avanzar porque si no estoy avanzando doble porque el avance lo estoy dejando el avance lo estoy dejando en manos de la colisión vamos allá para ganso ahí no debería haber podido avanzar bien que sí qué durante un momento ha querido hacerlo sin cuidado he cogido un fantasma sino mover principios y que parece que esté coleccionando en algún momento ha llegado a funcionar pero luego ha dicho que no comprueba conexión pareja con pared al presionar flecha derecha con prueba colisión fantasma y comprueba colisión pared es cierto que está tocando este color estoy tocando este color y si no está tocando este color en ese caso mueve el avance mejorar esto hay otro sensor que es comprobar si el color x se está tocando el color y entonces este sería otra posibilidad es cierto que el color gris está tocando este color azul ejecutamos y seguía avanzando cuando debería no hacer nada pero bueno podemos usar luego aparte es que el color gris cambia así que bueno esta sería una estrategia debe haber algún bug que está impidiendo que funcione correctamente pero esta estrategia de trazado de rayos nos podría ayudar para que el personaje pueda colisionar con las paredes mira ahí ahí durante un momento funcionaba mientras faltas moyano vamos a continuar con el siguiente ejercicio así que con mi usuario abierto voy a pulsar sobre crear un nuevo proyecto vamos a ponerle un nombre curso scrats ejercicio 5 hasta el momento hemos estado trabajando siempre con imágenes con sprites por una parte de la biblioteca por otra parte hemos trabajado también con sprites nuevos que hemos dibujado usando el propio editor de scratch hay que reconocer sin embargo que el editor de imágenes de scratch tiene serias limitaciones como programa de dibujo así que en este caso quiero partir desde esta opción que es cargar objetos desde archivo voy a trabajar con un juego en el que necesito una serie de pelotas de colores esas pelotas de colores no están dentro de la librería del programa y ciertamente quiero dibujarlas con más calidad de lo que podría dibujarlas dibujando a mano dentro de scratch para esto he usado un programa externo a scratch llamado inkscape es un programa de software libre que nos permite hacer ilustraciones vectoriales y he realizado esta serie de pelotas de colores que a continuación he exportado al disco duro así que puedes encontrar que en la elección previa a este vídeo que estás viendo tienes la descarga de estos archivos que directamente he exportado en mi caso en el escritorio la idea está en que este programa es más avanzado y me permite realizar efectos tales como reflejos totales como esta sombra para hacer como que son bolas translúcidas de caramelo digamos y con esto empezará el juego así que lo que he hecho por tanto es exportar estas bolas al escritorio a una carpeta del escritorio y a continuación voy a hacer clic por tanto en este botón de cargar objetos desde archivo me voy a ir al escritorio dentro del escritorio encuentro bolas y dentro de bolas encuentro cuatro imágenes con formato png he incluido también el archivo svg es el archivo original de ese programa de en que es kate pero los archivos que vas a necesitar para este ejercicio son los cuatro archivos png voy a cargar el primero voy a pulsar sobre abrir y voy a comprobar como a continuación aparece la pelota de color rojo dentro de la escena así que esta imagen que he traído desde fuera de scratch automáticamente se convierte en un sprite dentro del propio programa de producir en este caso que para este ejercicio no necesito el spray del gato así que voy a pulsar botón derecho borrar y me quedo únicamente con este sprite más adelante durante este ejercicio lo que haremos es trabajar con las diferentes pelotas de colores pero ahora de momento me quiero quedar con una de ellas por ejemplo la de color rojo que es la pared y en la que aparecía en primer lugar quiero enseñarte unas cosas ando con este sprite a continuación quiero simular en cierta manera la fuerza de la gravedad entonces para simular la fuerza de la gravedad me voy a ir a eventos y voy a decir que al presionar la equis a presionar la bandera verde quería decir no la equis lo que voy a hacer es que el personaje se mueva vamos a en primer lugar apuntar en dirección hacia abajo y a continuación voy a hacer que se mueva a 10 pasos pero claro esto solo va a hacer que se mueva a 10 pasos cuando pulsó la tecla por cierto que en cuanto al giro del personaje vamos a botón derecho de información en el estilo de rotación solo quiero que se rote en horizontal así que voy a quitar esta rotación y la pongo solo en horizontal de esta manera consigo que el reflejo y lo blanco siempre mire hacia arriba además quiero que esto no ocurra una sola vez sino que quiero que ocurra por siempre entonces por siempre mover diez pasos hago play y comprobamos cómo la bola cae hasta abajo voy a decirle en movimiento que quiero que siempre empiece en x 0 y 0 es decir al principio le doy a reproducir y observamos como la pelota cae es más quiero que empiece desde arriba hasta arriba es 150 así que y 150 por eso play y la pelota cae concretamente yo lo que quiero es que la pelota caiga pero caiga de una forma más realista y más bonita de lo que está cayendo ahora quiero decir con esto que si movemos la pelota hacia arriba veremos como cae con velocidad uniforme entonces la forma física de caer que suele quedar muy bien en juegos es que la pelota va aumentando su velocidad con el tiempo como cualquier objeto que tiramos por la ventana que está sujeto a una cierta aceleración pues conforme más va cayendo más velocidad va teniendo esto nos va a llevar a crear un evento para crear una variable en este caso llamada velocidad en y porque podría tener una velocidad en x entonces o la llamo bell y la llamo velocidad y lo que queramos esta variable la voy a poner de momento para todos los objetos así que pulso ok tengo una variable llamada velocidad y a continuación lo que voy a hacer es decirle que en cada uno de los bucles en cada uno de los pasos cada uno en cada una de las repeticiones de x siempre lo que quiero es que el personaje la pelota en este caso no se mueva 10 pasos sino que se mueva velocidad y pasos y además cada vez que pase por aquí la velocidad la quiero aumentar a 1 entonces lo que hago a continuación es que le voy a play y no sé si hemos visto como la pelota vamos a volver a iniciar como así la pelota claro al recargar tiene mucha velocidad así que lo que voy a hacer es que cada vez que empiezo el juego le digo que la velocidad empieza siendo cero le doy a play vemos como la pelota no sé si se ve la pelota empieza con cero velocidad y vemos cómo la pelota lo que va haciendo es que va aumentando de velocidad así pues no tenemos un movimiento uniforme sino que tenemos un movimiento uniformemente acelerado que insisto queda mucho mejor para simular la gravedad la fuerza de la gravedad dentro de los juegos dicho esto dicho esto a continuación quiero ahora simular el rebote para esto puedo empezar por ejemplo con sensores preguntándome si es cierto que el personaje está tocando algo vamos a ver si el personaje está tocando pues no sé una base está tocando lo que sea vamos a preguntarnos voy a hacer una cosa voy a rebotar contra el suelo me voy a control y le digo es cierto que le digo si es cierta una condición entonces hago algo bueno yo tengo la posición xy la posición y de la pelota me voy a movimiento en movimiento aquí tengo la posición en x y la posición en y son variables que yo no he creado pero que ya existían por defecto en el programa cuando la pelota sea menor que 150 por ejemplo así que me voy a operadores y le digo cuando algo es menor que algo cuándo la posición en y de la pelota es menor que menos 150 200 150 es este punto en ese caso lo que voy a hacer es especificar digamos cuál es la nueva velocidad entonces en ese caso que voy a hacer es decirle al sistema y velocidad y datos fijar velocidad y en cuanto pues si positivo es hacia abajo y a darle menos 20 vamos a ver qué pasa le di a play y si todo va bien lo que obtengo es un rebote la pelota lo que está haciendo es rebotar hacia arriba en este caso tengo un rebote para a continuación pues podríamos decir que la pelota que quiero que rebote hacia adelante y quiero que rebote hacia atrás ahora lo hacemos pero en este caso tengo un pequeño problema y es que la pelota rebota exactamente hasta la misma altura de la que venía más que nada esto es un poco imposible desde un punto de vista físico vale que estamos en un videojuego tampoco hace falta simular exactamente las reglas del mundo físico pero lo cierto es que en cada rebote la pelota debería perder un poco de energía potencial y por tanto nunca debería rebotar exactamente hasta el mismo punto del que ha partido entonces en lugar de colocar la velocidad y a -20 lo que puedo hacer es decirle que la velocidad es la siguiente vamos a ver me voy a me voy a operadores y le digo que la velocidad es la velocidad es cero menos velocidad pero menos velocidad la fórmula de 04 aquí esto es menos 150 esto no va aquí esto va a la fórmula de 0 – algo lo que está haciendo es una manera fácil y rápida de cambiar el signo de una variable así que sin velocidad y era por ejemplo 30 pues poniendo 0 – velocidad y se convierte en menos 30 lo interesante es que doble negativo es igual a positivo por tanto si la velocidad fuera menos 30 haciendo 0 menos velocidad menos menos es igual a más y por tanto sería 30 en definitiva esta pequeña formulita es una manera de convertir cualquier número en su negativo entonces vuelvo a ejecutar y haber cuidado vamos a verlo si es menor que 150 así vale en ese caso vamos a verlo en este caso le voy a decir que porque cuidado que la pelota atrapada un poco es normal le voy a decir que en movimiento cambiar y no fijar y a menos 149 o sea llevarlo un poquito hacia arriba le dé a play ahora sí bueno cuidado la pelota rebota a este valor es decir la pelota siempre tiene la inversa de su velocidad y como decía yo lo que quiero antes es simular en cierta forma la pérdida de energía de potencial entonces voy a ir a operadores voy a realizar una división o una multiplicación realmente da igual y digo esta multiplicación por 0.9 esto quiere decir que cada vez a ver con cuidado vamos a ver metro este bloque aquí básicamente lo convierte en negativo y a continuación lo multiplicó por 0.9 multiplicando lo por 0.9 como nos podemos imaginar lo que ocurre es que cada vez tiene el 90% de la energía potencial que tenía anteriormente y lo que ocurre como podemos imaginar es que la pelota llega un momento en el que para simplemente la pelota para volvemos a ejecutar y comprobamos qué comprobamos que la pelota poco a poco poco a poco va parando en este caso además quiero añadir un nuevo evento que es que este va a ser un juego bastante táctil por tanto no quiero que esto ocurra al principio del juego sino que quiero que ocurra cuando hago clic en el objeto así que voy a poner al hacer clic en este objeto apuntar en dirección esto sí que me lo quiero quedar pero este fijar velocidad lo quiero bueno realmente no quiero el por siempre al hacer clic en este objeto esto que es lo que va a hacer es lo que va a hacer es que cuando pulso play la bola se va arriba pero la bola se queda quieta la bola se queda parada porque no se va a poner en movimiento hasta que yo no haga clic en la bola y entonces es cuando empezará a caer vamos a verlo la pelota está arriba y suelo cuando yo haga clic en la pantalla es cuando la pelota realmente va a empezar a caer vemos cómo realizar una simulación de una nota que va dando vueltas pues es razonablemente sencillo pero en este juego recordamos que teníamos más pelotas con las que podíamos trabajar entonces vamos a importar el resto de elementos gráficos pelota de color amarillo pelota de color verde pelota de color azul las dejamos aquí a un lado ahora trabajaremos con ellas y vamos a por ello vamos allá vamos allá vamos por aquí bien voy a seguir trabajando con la pelota roja y ahora lo que quiero es lo siguiente cuando la pelota roja cuando la pelota roja llega al suelo realmente no quiero que la velocidad yo quiero que la velocidad se vuelva negativa lo que quiero es salir de este buque voy a control le digo detener pero no quiero detener todos los bucles solo quiero detener este programa solo quiero detener este bucle de aquí vamos a ver así que le doy a play la pelota cae en este caso se detiene este programa se detiene este bucle eterno por siempre vale pero no se detiene todo otra cosa que puedo hacer también es repetir hasta que es otra manera de introducir un bucle vacío vale entonces una cosa que puedo hacer en este caso es repetir hasta que la posición sea menor que 150 y en este caso en el bucle x siempre y en este caso pues realizar alguna operación bueno el caso es que de momento con esta operación me vale ahora quiero repetir esta función quiero repetir este bloque para todos y cada una para todas y cada una de las pelotas porque ahora quiero que todas las pelotas sean físicas pero claro no tiene no quiero tener que repetir esto varias veces pues bueno no pasa nada porque me puedo ir a más bloques me puedo crear un bloque roja creo un bloque y el bloque se llama cae gravedad pulso ok y defino este bloque cae gravedad y le digo que vamos a verlo por siempre hay gravedad esto fuera esto no vale para nada [Música] fijar velocidad a 0 yo lo pondría aquí y al hacer clic en este objeto caer gravedad vale y ahora vamos a saber definir gravedad quieto en opciones nada bien yo lo que quiero ahora es compartir el bloque entre diferentes objetos en un momento dado puede duplicar lo puedo copiarlo o puedo hacer cualquier otra operación lo importante en este caso es que veamos como al definir un bloque al hacer clic en ese caso el bloque cae hacia abajo en el suelo en este caso hemos trabajado sobre la pelota de color rojo el problema está en que así como en otros lenguajes de programación la compartición de bloques personalizados lo que en otros lenguajes de programación se llaman funciones la compartición de funciones entre diferentes objetos es algo bastante clásico en scratch no lo es una conversación una discusión en los foros en 2012 específicamente sobre este tema y los creadores de scratch dijeron que para evitar confusión también hecho es que las funciones fueran totalmente locales es decir las funciones son propias los bloques son propios personalizados de cada uno de los objetos entonces esto me dejaría la opción de copiar y pegar el bloque en cada uno de los objetos pero tampoco es algo que realmente yo quiera así que en este caso vamos a rodear el problema haciendo lo siguiente vamos a ir a disfraces y vamos a ver cómo en lugar de cargar las pelotas directamente como sprites podemos cargar las pelotas como disfraces de una pelota original así que digamos que en cierta manera tengo cuatro pelotas dentro de una hasta ahora hemos utilizado los sprites como algo así como fotogramas de una animación de un personaje y eso está bien no tiene ningún problema pero también podemos utilizar los sprites como diferentes estados diferentes variaciones de un mismo objeto en este caso estoy trabajando con una pelota pero yo a continuación voy a hacer lo siguiente cada vez que presionó la bandera lo que quiero es que el programa elija una pelota aleatoriamente vamos a hacerlo nos vamos a apariencia y me dice cambiar a disfraz entre un número equis de disfraces voy a cambiar el nombre de los disfraces vamos a cambiar el nombre de los disfraces este va a ser uno este va a ser 2 este va a ser tres y este va a ser 4 que voy a hacer con esto pues lo que voy a hacer es que al presionar bandera voy a cambiar el disfraz a un número aleatorio un número del azar entre 1 y 4 así que si le doy a play pero está es roja pero si lo deja play la pelota es azul si les deja play es roja amarilla amarilla azul verde roja azul como vemos lo que está haciendo el programa es que cada vez que crea una pelota nueva le asigna un disfraz diferente además ahora quiero crear clones quiero que cuando hago clic la pelota se cambie de color y caiga automáticamente quiero crear clones entonces voy a crear una variable llamada clone x para todos los objetos de cero pues no va a valer menos 150 de entrada y a continuación voy a crear diez bolas diez bolas las que queramos y voy a hacer lo siguiente creó un clon voy a crear un clon de mí mismo a este clon le cambió el disfraz este clon este clon es algo que le pasa al clon vamos a verlo y crear un clon de mí mismo y ahora voy a la siguiente dirección a equis clone x y 150 y clone x no quiero aumentar en 10 10 20 no lo sé ahora veremos yo creo que ya está vamos a verlo y salen diferentes pelotas muy bien ahora quiero aumentar esto en 50 igual es demasiado no está mal tampoco es decir que esto será igual a menos 170 esto es 150 y esto es menos 170 sevilla play – 200 ahora yo creo que más o menos si ahora quiero repetir sólo quiero ocho bolas y quiero cambiar a 60 esto ya se parece mucho más ahora lo que quiero a continuación es que para cada uno de los clones al comenzar como clon cámbiame el disfraz entre 1 y 4 y cae gravedad así que le había play y lo que ocurre es que aparecen diferentes bolas y cada bola tiene un color diferente se le asigna un color diferente a cada bola y lo que ocurre a continuación es que la pelota cae vamos allá muy bien esta última pelota la voy a quitar así que voy a repetir estos 7 veces ejecutamos vale parece que hay una pelota que no está cayendo qué es la pelota original entonces cae gravedad ahora sí yo juraría que tengo yo juraría que tengo una pelota de más una pelota doble de hecho está ahí así que voy a duplicar voy a borrar esto esto lo colocó en el medio ahora sí tengo ya todos los objetos correctos fijar clon a menos 230 – 210 para intentar que las bolas cuadren ahora yo diría que si dentro del escenario una vez que tengo esto una vez que tengo estás estas bolas cayendo en la pantalla ahora a continuación lo que quiero es que el programa bueno repita este proceso unas cuantas veces para ello para ello voy a anidar toda esta función dentro de un bloque nuevo qué es crear bloques así que crea bloques vamos esto va afuera así que crea bloques yo creo que tiene esto todo esto entonces a continuación llamó a crear bloques y simplemente no ejecutó para comprobar que todo sigue funcionando correctamente y simplemente a continuación voy a establecer un temporizador repito esto no sé cinco veces por ejemplo cada vez me espero digamos por ejemplo dos segundos y entonces ejecuto crea bloques así que si hago esto no voy a tener una fila de pelotas de colores sino que voy a tener 5 filas de pelotas de colores me voy a ejecutar vamos a verlo una fila otra fila otra fila otra fila otra fila yo creo que ya hay un problema y es que todas las bolas han caído exactamente en la misma posición porque pues porque simplemente dentro de esta función yo estoy diciendo que si la posicionen y es menor que 150 claro 150 para todos así que yo voy a crear en datos una variable y esta variable va a recibir el nombre d vamos a ver que tenía por ahí clon x velocidad y pues y máxima y máxima a la que los bloques pueden bajar cuando el juego empieza la y máxima a ver momento esto no fuera fijar y máxima – 150 – 150 déjame ver mejor los bloques y ahora continúo diciendo lo siguiente sí es cierto que la posición y es menor y máxima en ese caso fijar a y máxima más uno entonces me voy a control no me voy a operadores me voy a sumar su mar y máxima más 1 y por último y por último le digo y max cambiar y max por no sé 50 tal vez vamos a verlo lo que va a hacer esto es actualizar el valor de la y máxima para que cada vez que se ejecuta el bloque sea mayor y por tanto unos bloques se pongan encima de los otros acá en los bloques cuidado no están cayendo los bloques están creando los bloques sus correcto no está encallado luego algún error he cometido si yo diría que el error es que esto va al final vamos a ponerlo aquí una sola vez ejecutó o las olas caen pero vuelas paran muy bien sí es cierto que la posición en mí y es esto cierto es que esto debería hacer área vamos a ponerlo aquí o bien es interesante porque las bolas han caído las bolas han caído pero a continuación se quedan en un estado un poco raro cuando caen se quedan allí vamos a tirar esto a 10 segundos para asegurarnos que no estamos confundiendo la ejecución se crean las bolas podría crearse 5 segundos 10 segundos algo las caen y se quedan así así que cambiar y máxima para 50 ese es el problema allí está el problema esto ocurre por siempre esto solo debería ocurrir una sola vez fijar y vamos a ver qué puede haber pasado porque en principio la y máxima parece correcta bien creo que ya me hago una idea de lo que puede estar pasando entonces el problema es que esto se ejecuta dentro de cada gravedad y que hay gravedad se ejecuta para cada una de las bolas entonces lo que voy a hacer en este caso es cambiar la y máxima esto lo voy a hacer dentro de crea bloques no dentro de cada uno de los que hablo qué yo creo que habrá sí claro fijar la y hay y máxima esto sí que debería venir aquí y ahora ejecutamos este esperar diez segundos voy a ponerlo después porque si no al principio tengo que esperar 100 segundos así que ejecutó las bolsas caen bueno gana 10 segundos son demasiados vamos a poner 2 segundos o las caer y dos segundos después deberían aparecer nuevas bolas y quedarse por encima bueno alguna veo que está fallando es curioso pero mayormente el efecto funciona vale ya tengo cinco bolas voy a hacer que espere menos un segundo vamos a cambiar y máxima por 60 así que ejecutamos y vemos cómo caen nuevas bolas es extraño algunas rebotan más de la cuenta pero bueno y voy a decir que quiero repetir esto seis veces en lugar de repetirlo cinco y le digo que quiero esperar 0.5 segundos quiero que de repente en la pantalla haya para muchas bolas entonces hoy se crean se crean se crean se crearán poco raras pero se crean bien ya tengo en la pantalla la idea de múltiples bolas y lo que quiero hacer a continuación es crear un juego en el que de alguna manera interactúe con estos elementos para mí lo interesante de entrada es que veas cómo he creado un juego de bolas con gravedad teniendo en cuenta que no he tenido en ningún momento nada de debe crear múltiples elementos que todo esto surge a partir de una única bola y simplemente duplicamos bloques y encima son aleatorios que es la gracia es que cada ejecución es diferente la ejecución nos da un resultado diferente y esto hace el juego más divertido voy a decir que vamos a ver esto lo quiero repetir seis veces pero quiero repetir esto también seis veces para ver qué es lo que puede estar ocasionando que las bolas se amontonen en un efecto curioso de amontonamiento y ahora luego tendremos que investigar por qué ocurre ese amontonamiento en las bolas aprovecho para meter un fondo nuevo vamos a meter algún fondo de escenario a los sky algo así igual un grid para este caso podría ser divertido ya que incluso más o menos para efe qué alegría vale parece que cuadra bastante con las bolas así que bien pues un grid estaría bien y ahora como digo vamos a idear qué es lo que podríamos hacer con estas bolas para jugar para tener algún tipo de relación entre ellas y pues eliminar colores similares o cosas parecidas las capacidades de scratch para trabajar con sonidos son simplemente alucinantes porqué scratch lleva ya trae consigo una serie de nodos un montón de nodos específicamente para trabajar con sonido estos nodos no los hemos trabajado hasta ahora no hemos usado ninguno pero porque estaba reservando para hacer un ejercicio o dos o tres específicos de estos nodos concretos entonces voy a dejar el gato en pantalla de momento vamos a vamos a tener un objeto vamos a música vamos a trabajar voy a cojer este drum bass por ejemplo pulso ok tengo un drum bass y si voy a sonido observó como tengo diferentes sonidos que puedo tocar puedo de hecho en este en este drum bass tengo un sonido otro sonido y otro sonido o sea son sprites que tienen sonidos ya incorporados pero curiosamente es que no quiero estos sonidos se escucha muy fuerte entonces me voy me voy a seleccionar el drum y lo que voy a hacer es que cuando arrancó el juego quiero que suene no este sonido sino un tambor lo divertido es que de hecho el programa lleva ya un montón de sonidos de tambor incluidos para que nos hagamos una idea de cuál es la terminología musical en este caso vamos a ver que tengo aquí una imagen de una batería entonces esto es un bombo está esto es una caja estos son timbales vamos a verlos vamos a ver golpe lateral platillo crash aquí hay algunas otras cosas tenemos tambor de caja tenemos bombo tenemos lateral tenemos platillos los platillos son los siguientes esto es un crash y esto es un hi hat hi hat puede ser cerrado puede ser abierto esto es muy curioso entonces voy a decir que voy a tocar el bombo así que voy a tocarlo cada 0,23 a durante 25 pulsos 0,25 pulsos de uplay y suena un tambor tambor bombo pero tenemos entonces le ve a play y ahora lo que quiero es de hecho que vayan sonando tambores con el tiempo entonces me voy a por siempre y le digo por siempre toca el tambor durante 0.25 pulsos entonces the play y va sonando mostrando tambores uno detrás de otro vamos a comprobar si nos escucha correctamente y continuamos para el perfecto continuamos los pulsos son importantes desde el punto de vista en que representan tiempos enteros en un pentagrama así que 0.25 pulsos es algo así como una semi corchea vamos a ver o saber tenemos tiempos musicales tiempos musicales tiempos musicales aquí los tenemos entonces por ejemplo vamos a ver aquí lo tenemos no aquí no aquí a ver venga abajo una negra es un tiempo una semi corchea es un cuarto de tiempo entonces si yo estoy poniendo aquí 025 0.25 es un cuarto de algo eso quiere decir que lo que estoy tocando es una semi corchea te vendrá bien probablemente tener este esquema a mano para saber exactamente qué es todo esto bueno pues pero claro una semi corchea eso va rápido o va lento pues depende del tempo al que tú pongas la canción pero si yo pongo un tempo de 2020 es bastante lento así más rápido a cambiar tiempo por 20 no no no esto no decía yo es aumentar el tiempo fijar tempo ahora sí dejar tempo a 60 es más o menos lento y si lo cambio a 120 pulsos por minuto y tenemos la unidad pues va más rápido bien ahí lo tenemos vamos allá tengo un tocar tambor 2 durante 0.25 pulsos voy a pasar esto a 80 y voy a tocar el tambor 2 durante un bolso es decir ahora va a ir cada negra vamos que ahora va más lento pero después quiero tocar el otro tambor quiero tocar el tambor llamado tambor de caja lo quiero tocar también cada pulso voy a decir que voy a ir alternando bombo caja bombo caja vamos a verlo si nos fijamos y tenemos un ritmo y tenemos un ritmo en pantalla ahora quiero mezclar quiero hacer un ritmo como de ska por ejemplo que va alternando bombo caja con plato entonces voy a decir que esto lo paso a 0.5 pulsos ahora quiero tocar un tambor quiero tocar un tambor que va a ser el tambor charles cerrado durante 0.5 pulsos y quiero duplicarlo y ponerlo no todo esto todo no quiero duplicarlo y ponerlo aquí así que ahora el resultado va a hacer el siguiente como vemos tenemos un ritmo esto lo quiero al revés este quiero que esté abajo del todo tenemos un ritmo vamos a aumentar un poco el tempo vamos a ponerlo a 100 y tenemos un pequeño ritmo de batería es curioso voy a añadir un par de eventos para aumentar el tempo entonces me voy a control de eventos y le digo al presionar la tecla quiero la tecla + vaya solo tengo estas teclas no pasa nada pues mira flecha arriba lo que va a hacer es cambiar el tiempo a 20 unidades más flecha abajo va a cambiar el tiempo a menos 20 así que vamos a play la flecha hacia arriba hace que vaya más rápido la flecha hacia abajo hace que vaya más lento tengo como un ritmo verdad para un juego bien tengo esto por aquí pero es que además puedo hacer más cosas con este ejercicio vamos a ver a continuación que voy a meter un nuevo sprite vamos a verlo luego sprite voy a meter en música un piano aquí están estos cursos scratch y este yo juraría que es el ejercicio 6 voy a meter un piano más que nada para trabajar con sonidos de piano entonces voy a decir que añado un evento y al presionar la tecla del teclado voy a tocar la nota tocar la nota do medio por ejemplo durante 0.5 pulsos además por si esto no fuera suficiente resulta que tengo que tener todos los sonidos primero y tengo el hecho de que puedo fijar instrumento esto es increíble porque fijémonos tengo una serie de instrumentos con los cuales bueno la capacidad de experimentación a nivel musical que tenemos con scratch es increíble tenemos pianos tenemos órganos tenemos guitarra tenemos bajo tenemos cuerdas en pizzicato o sea pulsar las cuerdas de un violín en lugar de frotar las tenemos violonchelo tenemos trombón clarinete tenemos flauta tenemos fagot tenemos vibráfono tenemos un montón de instrumentos curiosamente tenemos violonchelo no tenemos violín y viola pero bueno da igual no pasa nada así que fijó el instrumento a uno a piano y cuando tocó la tecla a toco la nota hemos dicho vamos a verlo do medio entonces le dé a play to cola detrás [Música] y es genial porque puedo tocar realmente una nota musical voy a tocar la durante 0.25 pulsos voy a tocar más teclas y voy a decirle al sistema que cuando presiona la tecla cuando una tecla en una tecla s que está al lado de la cuando presionó la tecla d cuando presiona la tecla [Música] efe cuando presiona la tecla cuando presionó la tecla cuando persona tecla j la tecla j y voy a decir de tener sonidos de tener sonidos de tener sonidos el sonido realmente todos no y tocar nota tocar nota tocar nota tocar nota y tocar nota 0.25 voy a control c copiar y ahora pego pegó con control v pego pego y pego bien y ahora voy a ejecutar la tecla la nota red [Música] sol hola dice y por último o sea que estamos no me cuesta nada al tocar la tecla pues voy a tocar la nota lo alto durante 0.25 así que bueno vamos a aprobar [Música] vamos a tocar a la nota durante más tiempo tocar los pulsos los pulsos dos pulsos dos pulsos dos pulsos dos pulsos dos puestos para todos [Música] bueno y como vemos lo que tenemos es un ritmo de fondo y encima del ritmo he tocado una pequeña melodía tocando las teclas del piano es decir este pequeño proyecto se ha sido capaz de convertir a nuestro teclado del ordenador en un teclado musical además con un cierto ritmo de fondo que ubicado en los nodos del tambor entonces pues incluso en este caso es que scratch es maravilloso porque nos permite experimentar no solo con programación sino con secuenciación musical y todo ello dentro del mismo entorno de desarrollo por eso hasta el momento no había tocado ningún bloque de sonido simplemente porque los bloques de sonido realmente es que requieren una atención un poco especial el piano los divertidos que después de todo esto yo puedo ahora de repente pues cambiar ya un significado melódico a ver [Música] bueno es un poco feo la verdad pero vamos a ver un seccionador de fondo y esto qué guay [Música] i [Música] y vemos cómo tenemos una aplicación musical en un momento hemos convertido a este proyecto de scratch en un pequeño los proyectos como con bandas verdad voy a hacer otra cosa voy a añadir otro instrumento voy a añadir me voy a música voy a ver tenemos un bajo por ejemplo vamos allá ya ok y en el bajo le digo qué en el momento en el que empiezo el programa voy a hacer esto en otro vídeo en el momento como decía en el que empiezo el programa al presionar la tecla verde el tiempo me lo quedé igual entonces el sonido le digo que cambiar fija el instrumento abajo y entonces lo que voy a hacer es elegir lo siguiente voy a repetir por siempre y entonces quiero hacer lo siguiente no había el sonido retocar nota 60 las notas van desde a ver siempre esto es un bajo desde 48 a un vale venga a la vez de 48 hasta 60 muy bien pues va a tocar la nota durante un pulso mono 0.5 pulso está bien pero lo interesante es que voy a crear una variable que es no está bajo una breve nota abajo va a ser un valor aleatorio / hemos dicho 48 y 60 así que repito esto cuatro veces repito esto cuatro veces y cada uno de los bloques voy a ejecutar esta nota y cada vez voy a fijar la nota pero esto lo quiero duplicar quiero fijar esta nota a un valor diferente así que vamos a ejecutar [Música] y lo que estaba ocurriendo es que la batería toca a su propio ritmo pero el bajo toca aleatoriamente es decir si nos fijamos lo que estaba ocurriendo es que estamos haciendo un programa de scratch que hacen música aleatoria tengo un ritmo de batería [Música] y tengo por bajo una nota una melodía que va tocando notas aleatorias además en lo que hace es tocar cuatro otras notas iguales y luego cambia la nota toca a otras cuatro iguales luego cambia la nota y así siempre por cierto que 48 pues voy a probar 36 de 36 a 48 los 12 semitonos una octava [Música] la nota puede ser aleatoria si hay algún músico escuchando estudia abre no es demasiado normal que cada cada compás tenga una nota en los 12 semitonos de una octava pero bueno espartano tampoco para entrar en consideraciones de armonía y de patrullas de acordes y nada de esto simplemente como ejercicio puede ser suficiente yo ahora quiero decirle al piano que en lugar de tocar yo el piano además tocar yo el piano también quiero que sea aleatorio entonces vengo por aquí y le digo al presionar fijar instrumento a piano y quiero un poco repetir duplicar un bloque como éste entonces lo que voy a hacer en este caso es decirle que por siempre quiero tocar tocar tocar tocar tocar tocar tocar allí tocar una nota durante un pulso un cierto pulso y la nota va a ser un valor aleatorio ahora sí entre aquí 48 y 60 en este caso lo que va a ocurrir es que el piano mira a su rollo [Música] vamos a poner notas un poco más altas entonces le digo entre 60 y 72 ah [Música] y bueno que reconocer y que es una música un poco extraña hay que decirlo pero la importante también es que bueno es más un ejercicio didáctico que otra cosa evidentemente lo importante voy a bajar el volumen lo importante en este caso es ver cómo estamos haciendo una programación musical con prácticamente cero esfuerzo por nuestra parte vamos a darle play [Música] voy a bajar el tempo [Música] y hay ahora mismo una nota de piano por cada nota de debajo voy a decirle que grande 0.25 pulsos [Música] bueno al final es un poco caótico pero la idea es esta la idea es saber que tenemos una serie de nodos específicos para trabajar con sonido y que en un momento dado pues nos pueden dar lugar a una serie de experimentos muy divertidos con sonido dentro de scratch como vemos con un nivel de dificultad bastante bajo pero además por si esto no es ya de por sí suficientemente divertido contamos con dos bazas más que son la de poder subir sonidos que no estén incluidos dentro del programa son sonidos propios nuestros e incluso poder grabar sonidos voy a crear un sprite de hecho voy a crear lo vacío voy a crear una nota musical una corchea la pintamos de negro y este es un spray que claramente acabó de crear su sprite veámoslo ahí lo tenemos y lo que quiero es que cuando toco el sprite cuando yo toque a hacer clic en este objeto arranque una música voy a hacer lo mismo con el bombo no quiero siempre quiero al hacer clic para que no empiece la música directamente vaya también empieza el piano pues voy a hacer al hacer clic y con el bajo también al hacer clic y así solo sonarían si lo es todo bueno pues edito mi sprite llamado objeto 1 me voy a sonidos veo que él tiene un sonido por defecto llamado pop pero a continuación aquí arriba yo puedo hacer tres cosas que puedo sacar un sonido de la librería [Música] o sea tengo un montón de sonidos aquí dispuestos para utilizar [Aplausos] pero además de usar sonidos la librería también puedo cargar sonidos directamente desde mi disco duro eso sí se recomienda que los sonidos estén en formato mp3 entonces voy a hacer clic en la carpeta de subir he dejado en el escritorio una carpeta llamada audio donde tengo el archivo a long week en mp3 es una canción en este caso la encuentras como adjunto a este ejercicio así que le doy a abrir el programa está convirtiendo archivo mp3 es decir ha subido el archivo a scratch y a continuación lo está convirtiendo de formato hay que esperar momento a que lo acaba de convertir en este caso es una canción de unos tres minutos creo lo cual pues es normal que le cueste unos pocos segundos quizás algún minuto que otro acabar de convertir la canción así que bueno tenemos un poco de paciencia ahora en un momento tendremos la canción disponible un momento y a continuación ahora subimos un sonido en un momento aquí lo tenemos tenemos el sonido subido a nuestro programa le damos a play [Música] podemos evitar además el audio podemos cortar trozos podemos pegar podemos añadir efectos podemos aparecer poco a poco para que el sonido vamos a editar una pista de sonido le digo aparecer ahora fijémonos que en lugar de empezar directamente lo que hace es que empieza poco a poco podemos tomar secciones y podemos rebajar el sonido vemos como la sección que yo he seleccionado ahora está más suave y luego la sección siguiente está más fuerte [Música] ay se ha notado la subida en definitiva por supuesto tenemos opción de silenciar y opción de darle la vuelta a un sonido que tenemos un pequeño editor del sonido incorporado dentro de scratch y por si esto no fuera suficientemente divertido resulta que también puedo grabar sonidos bueno de momento voy a ejecutar vamos a ver voy a decir que al hacer clic en este objeto está guardando cambios un segundo vale al hacer clic en este objeto sonido quiero tocar sonido a long week en mp3 y tocar sonido y qué me dices y esperar no pues toca el sonido así que reproduzco y cuando toco la nota es cuando empieza el sonido esto ya es increíble pero además yo voy a crear un nuevo sprite voy a crear una clave de sol y cuidado que estaba rellenando rellenar voy a dibujar voy a dibujar con más radio quiero crear una clave de sol así que sol ahí la tenemos y y ahora en esta clave de sol forzar un poquito más bonita en esta clave del sol lo que quiero es grabar un sonido personalizado entonces me voy a ir a sonidos el pop lo puedo quitar mentalmente y tengo un micrófono y lo que dice el micrófono es que yo puedo grabar sonidos así que hago clic en grabar nuevos sonidos veo que sale el mismo editor de sonido que antes pero tengo un botón de grabar y ahora voy a grabar un trozo de voz yo grabo esto es una grabación paro y veo como tengo ahí la onda de audio que acabo de grabar vamos a darle play y efectivamente ha salido el sonido entonces a partir de aquí que me puedo ir a los nudos puedo ir a control no a eventos quería decir y le digo que al hacer clic en este objeto quiero en sonido tocar el sonido grabación 1 así que la próxima vez vamos a esperar un poquito los instrumentos la próxima vez que haga clic en este objeto hacer clic en este objeto tocar sonido grabación 1 voy a hacer una cosa voy a y cortar borrar y bueno también el final vamos a verlo play click ahora sí otra vez y comprobamos como efectivamente al hacer clic encima de la clave de sol en este caso lo que está ocurriendo es que está reproduciendo una grabación previamente creada luego si sólo con los sonidos que incorpora scratch ya tenemos una inmensa variedad de posibilidades esta variedad yo diría que prácticamente se vuelve infinita con la posibilidad o bien de subir sonidos desde nuestro ordenador y también incluso pudiendo grabar nuestros propios sonidos el siguiente ejercicio es un poco particular porque nos sirve para aprender sobre todo el funcionamiento de las estructuras de datos basadas en listas diciendo esto lo primero que voy a comentar es que hasta ahora hemos estado trabajando con la estructura de datos llamada variable además todo lo que hemos hecho hasta ahora básicamente al final ha sido trabajar con juegos cosa que no está nada mal porque es una fantástica manera de aprender a trabajar con scratch sin embargo a continuación voy a demostrar que scratch sirve para hacer más cosas que juegos scratch sirve para hacer programas donde los juegos son un tipo de programa otra cosa que voy a decir y esto no es específico para este proyecto es que hay veces que me interesa aprovechar al máximo la pantalla entonces yo ahora mismo tengo por aquí arriba esto que estamos viendo que es la barra de dirección del navegador web que estoy usando para trabajar con scratch estoy viendo la url del proyecto de scratch y en definitiva estoy perdiendo como te diría yo una octava parte quizás una décima parte de la pantalla con la que estoy trabajando así que cuando quiero aprovechar un poco más la pantalla lo que suelo hacer es pulsar f11 y al pulsar f11 lo que ocurre es que la pantalla vamos a verlo es que la pantalla ahora se pone en pantalla completa como has visto lo que he hecho es hacer clic dentro de la url entonces he pulsado el botón de f 11 se me dice en la pantalla pulsa f 11 otra vez para salir del modo de pantalla completa y así de esta manera lo que hacemos también es aprovechar mejor el espacio y no perder mejor en a perderte espacio quería decir con la parte de arriba ya sabemos que si en un momento dado nos sentimos perdidos pues cuando pulsamos f11 volvemos a recuperar lo que teníamos anteriormente vamos a el navegador web del cual realmente sabemos bueno pues como estaba comentando a continuación lo que voy a hacer es llegar aquí a datos y observar que además de tener la opción de crear una o varias variables tengo la opción de crear una o varias listas así que yo siempre suelo decir lo siguiente hay muchos ejemplos de programas y de juegos en los que generalmente una variable se nos va a quedar un poco corta nosotros hemos usado hasta ahora una variable para guardar cosas como la velocidad la posición un objeto sólo puede tener una posición porque no puede estar en dos sitios a la vez y por la misma razón un objeto no puede tener dos velocidades así que en definitiva hay veces que la variable es correcta y veces que usar una variable es correcto para lo que queremos hacer pero sin embargo yo ahora mismo lo que quiero hacer es crear una estructura de datos tal que pueda almacenar tal que puede almacenar no solo una pieza de información sino varias piezas de información así que yo quiero hacer una lista de cosas y para eso voy a usar el botón de crear una lista por ejemplo podría hacer una agenda de mis amigos podría hacer la lista de la compra podría hacer un montón de cosas requerirían algo más complejo que una variable definitiva el problema de una variable es que siempre tiene un solo valor almacenado se llama variable porque el valor puede cambiar durante el tiempo no hay ningún problema por eso pero solo puede tener un valor no puede tener varios valores almacenados en cambio la lista sí que puede está lista es una estructura de control específicamente pensada específicamente diseñada para esto voy a eliminar en un momento el gato voy a crear algún otro sprite púlsar derecho eliminar vamos a ver parece que no me deja eliminar cosa más curiosa bueno bueno voy a crear un nuevo objeto y este nuevo objeto pues no sé voy a hacer que sea la lista de la compra así que voy a hacer una manzana pulso ok tengo una manzana en la pantalla a continuación voy a crear una lista por tanto llamaré a esta lista como yo quiera pero evidentemente que tenga un nombre más adelante identificable voy a crear una lista que sea compartida para todos los objetos y se va a llamar lista de la compra así que pulso ok y aquí tenemos la lista de la compra lo bueno es que en el momento en el que aparece la lista de la compra aparecen una serie de nodos hay más nodos que en las variables con los que podemos realizar múltiples operaciones antes de explicarte estos nodos déjame crear un par de nuevos sprites entonces voy a dibujar un nuevo objeto y voy a hacer lo siguiente vamos a ver vamos a crear color verde color verde oscuro voy a hacer un rectángulo un rectángulo relleno y vamos a hacer un botón así así que a continuación vamos a texto de color blanco y pongo añadir acá acá 10 porque no coge la ñ así que a nabil quieres también podemos poner un signo más o ambos no sé añadir por ejemplo cojo el texto vamos a verlo lo muevo y yo creo que más o menos ya así que ya tengo este sprite llamado añadir voy a crear otro sprite en este caso con color rojo oscuro llamado borrar le doy la vuelta al color color blanco borrar muevo el texto con un clic fuera ya está y a continuación voy a hacer un último botón fíjate que en este ejercicio no estoy haciendo un juego estoy haciendo una aplicación es perfectamente posible quiero decir es que este programa sprite este entorno más que un programa no sólo sirve para hacer juegos también sirve para hacer aplicaciones esto se va a llamar modificar un clic posición y otro clic para finalizar modificar verde añadir en rojo borrar y en amarillo modificar me voy ahora a programas y quiero añadir un nuevo elemento vemos que no me ha dejado poner una ñ pongo en y ya está entonces me voy a eventos y digo cuando haga clic sobre este objeto en este caso de momento lo que voy a hacer es poner en apariencia es decir algo en la pantalla decir por ejemplo ahora vamos a añadir añadir en la lista ahora así que me deja poner una ñ pulso o play y cuando hago clic en añadir dice ahora vamos a añadir algo en la lista la idea la idea voy a decir algo durante vamos a decir algo durante 5 segundos vamos a añadir un elemento a la lista bien y entonces dentro de sensores es curioso que esté aquí pero está aquí hay un nodo hay un bloque que no hemos usado hasta ahora que es preguntar una pregunta realizar una pregunta y obtener una respuesta la cuestión está en que teniendo en cuenta cómo funcionan los leds los lenguajes de programación es cierto que preguntarle algo al usuario se considera un sensor porque se está obteniendo una entrada por parte del usuario centrada nuestro karma teclas y no responder a una la pregunta pero es una entrada así que pregunto y pregunto qué deseas deseas introducir y espero y espero que pues espero una respuesta así que a continuación me voy a ir a datos y voy a observar que hay un bloque que dice añade fin añade algo añade una cosa a la lista que sea en este caso solo tengo una que es la lista de la compra así que añado fin pero no quiero añadir fin lo que quiero es añadir la respuesta vamos a comprobar si esto funciona correctamente pulsamos play entonces añado y dice vamos a añadir un elemento a la lista y 5 segundos después aparece este mensaje que me dice que deseas introducir pues quiero comprar manzanas o bien pulso enter o bien pulsó el botón de validar y compruebo como efectivamente me ha introducido un elemento llamado manzanas a la lista de la compra continuó evidentemente puedo añadir tantos elementos como quiera entonces añado vamos a añadir un elemento a la lista espero cinco segundos que deseas introducir deseo introducir plátanos pulso play y plátanos aparece dentro de la lista entonces una lista es algo así como una variable pero más inteligente porque puede incluir puede incorporar múltiples piezas de información puedo añadir tantas cosas como quiera voy a esperar sólo un segundo incluso podría crear este bloque añado elemento en la lista quiero peras así que le doy a aquí a introducir y tengo un tercer elemento en la lista esto es genial desde el punto de vista en el que puedo ir creando esta lista de la compra a continuación si ya tenemos claro cómo funciona el botón de añadir lo que hace básicamente es bueno cuidado porque he hecho clic a mí me lo ha introducido también que le borre a continuación si ya sabemos añadir vamos a borrar entonces al borrar lo que quiero hacer en este caso es decir bueno no quiero operar por ejemplo lo quiero borrar ojo yo lo he hecho aquí pero he hecho aquí aquí haciendo clic pero esto es trampa esto es trampa porque yo estoy en modo autor y evidentemente lo que quiero es que cualquier persona no en modo autor si no cuando yo saqué este programa pues cualquier persona que no puedo hacer esto pueda borrar cosas vale por eso lo que yo he hecho con la equis es un poco trampa bueno pues en este caso me voy a la tecla de borrar y le digo eventos cuando hago clic en este objeto me voy a datos y le digo borrar borrar el número 1 de la lista de la compra entonces cuidado no yo me voy a sensores a una pregunta les digo elemento quieres borrar y espera una respuesta vale entonces lo que hago qué elemento pero qué número de elementos entonces borro la respuesta nombre entonces vamos a ver añado vamos a añadir un elemento la lista no sé manzanas ya lo tengo pues mangos entonces le doy a validar y tengo por aquí mangos pero ahora pulso borrar y dice qué elemento quieres borrar quiero borrar las peras así que pulso el número tres porque las peras equivalen el número tres pulso validar y observo varias cosas las peras han desaparecido las peras ocupaban el número tres los mangos ocupaban el número cuatro entonces al eliminar el elemento número 3 evidentemente los mangos pasan a ocupar esa lista lo digo evidentemente podría no ser tan evidente de hecho hay lenguajes de programación más avanzados en los que si borro el elemento número 3 no necesariamente el número 4 pasa a ocupar el número 3 sino que el número 4 se queda como número 4 y el número 3 se queda temporalmente vacío pero scratch no es uno de estos lenguajes scratch o lo que hace es reordenar la lista y hacer que la lista siempre esté con números consecutivos vale así que vamos a trabajar con esto y ahora a continuación en el siguiente vídeo vamos a realizar unas cuantas operaciones más bueno pues ya sabemos añadir elementos ya sabemos borrar elementos vamos a ver qué más podemos hacer vamos a la tecla de modificar y yo voy a eventos o ya cuando hago clic en este objeto entonces cuando hago clic en este objeto que bueno pues no voy a datos y entonces ocurre lo siguiente en primer lugar hazme una pregunta vamos a sensores pregunta qué elemento deseas modificar entonces lo que voy a hacer es que me voy a datos y lo que hago es decir lo siguiente vamos a ver elemento 1 lista de la compra pero yo quiero preguntar dos cosas entonces una es por una parte que elemento deseo modificar y otra es con que lo quiero modificar probablemente me va a hacer falta crear un par de variables entonces voy a crear una variable llamada elemento índice elemento a modificar creo otra variable llamada contenido elemento a modificar ok y creo otra variable llamada nuevo contenido bueno esto no hace falta creo así que le digo qué elementos deseas modificar pues le digo el elemento que deseo índice elemento que decir deseo modificar es la primera respuesta a continuación preguntó con que lo quieres modificar por ejemplo en lugar de eso lo que podría hacer es realizar lo siguiente dame el contenido es decir dame el elemento respuesta el elemento respuesta de la lista de la compra vamos a vamos a verlo vea play quiero modificar el número 1 y entonces me dice manzanas ese es el problema preguntar no estaba afuera entonces lo que quiero preguntar es con qué contenido lo quiere es reemplazar pues en este caso lo que hago es una pregunta y vamos a verlo y por esto he determinado una variable porque esta pregunta machaca esta respuesta entonces lo que hago a continuación es decirle al programa lo siguiente en datos quiero decirle que en la lista reemplazo el elemento índice elemento a modificar y lo reemplazó con respuesta es un poco complejo pero tiene su sentido la idea es que en primer lugar tengo dos respuestas una es el índice del elemento a modificar y otro es con que lo quiero modificar entonces claro cuando uso esta respuesta he perdido esta primera respuesta entonces uso la variable para guardar la respuesta temporalmente para guardar la primera respuesta bien de uplay así que quiero modificar esto déjame lo pongo por aquí qué elemento deseo modificar 1 vale con qué contenido lo quieres reemplazar porque quiero reemplazar con manzanas así que pulso ok y si todo va bien donde antes ponía manzanas rojas ahora pone manzanas verdes no lo he borrado pero lo he modificado modificar otra vez elemento número uno ahora quiero que pongan manzanas verdes bebés ok ahora pone manzanas verdes podemos comprobar como ya tenemos tres operaciones básicas sobre una agenda sea lo que sea lo que contiene la agenda evidentemente que es añadir un elemento nuevo al final que es borrar cualquier elemento o es modificar en este caso en este caso lo que vamos a hacer a continuación si quiero otro botón llamado borrar llamado intercalar perdón quería decir entonces vamos a vamos a hacer los botones un poco más pequeños entonces vamos a añadir vamos a aquí vamos a apariencia vamos a cambiar el tamaño del 50% y ahí está lo mismo para borrar presionar la apariencia fijar tamaño al 50% modificar eventos presionar por ejemplo por aquí abajo apariencia fijar tamaño al 50% o saber si es cierto los tres eran pequeños no puedo olvidar y voy a crear un sprite más este sprite va a tener un color azul porque no tengo ningún color azul todavía y va a tener un texto de color blanco en el que voy a poner intercalar clic fuera clic y arrastra para moverlo y clic fuera para finalizar la creación del botón aquí tengo el botón un poco grande de entrada pero bueno otra vez vamos a eventos al presionar bandera apariencia fijar tamaño al 50% del original bandera y ya está bien en el momento en el que pulsamos añadir lo que hace siempre el programa es decirnos que añade un elemento al final de la lista bien vale no hay ningún problema pero qué ocurriría si yo lo que quisiera fuera intercalar un nuevo elemento por ejemplo entre manzanas y plátanos pues para eso me voy a datos y compruebo que me dice insertar algo en una posición concreta de la lista de la compra entonces a continuación me voy a insertar pero antes voy a hacer una pregunta me voy a sensores me voy a preguntar me voy preguntado en qué elemento deseas insertar un nuevo registro y espero la respuesta entonces a continuación claro me hace falta otra vez una variable intermedia porque luego es y qué quieres insertar bueno pues puedo usar por qué no otra vez la variable índice elemento a modificar aunque técnicamente aunque técnicamente no es a modificar pero puedo utilizar la variable me sirve digamos no tengo por qué crear otro así que esto es la respuesta y a continuación lo que voy a hacer es otra pregunta y la pregunta ahora es qué contenido deseas introducir y espero la respuesta entonces ahora lo que hago es inserto la respuesta en el índice contenido a modificar de la lista de la compra vamos a comprobar si esto es correcto pincho intercalar en qué elemento de insertar nuevo registro por ejemplo en el 2 y qué contenido deseas introducir pues quiero piñas así que pulso ok y vemos cómo ha insertado sé que he puesto un acento ha insertado un elemento antes de el número qué contenido deseas introducir y esperar insertar respuesta en índice contenido vamos a ver otra vez intercalar el número 3 y perras bueno vamos a verlo qué contenido en índice de elemento modificar no es contenido por esto no funciona índice elemento a modificar ya decía yo digo esto nuestro funcionando correctamente vamos a volver a probar ejecutó intercaló por ejemplo el número 3 el número 3 quiero insertar moras así que pulso y efectivamente ahora sí que está funcionando correctamente en el sentido de que está insertando objetos en el punto de la lista que me interesa vale muy bien ya tenemos esto otra operación que podemos hacer es que vamos a ver por aquí [Música] así que vengo por aquí y ahora lo que voy a hacer es que cuando añado un elemento al final del todo quiero que me diga quiero que me diga algo en la pantalla pensar algo que sepas qué tienes ahora lo que tienes ahora que tienes ahora x elementos en la lista vamos a ver lo hago aquí clic añado vamos a preparar un elemento pues no se sana orias leve a clic que sepas que ahora tienes equis elementos en la lista x ese x tiene que ser una suma un conteo de todos los objetos que tenemos en la lista para ello nos vamos a datos y dentro de datos vemos que tenemos una opción una operación que es longitud de la lista eso quiere decir en este caso que voy a especificar la longitud de la lista pero para ello lo que tengo que hacer es ir a operadores y en operadores tengo por aquí un operador un poco especial llamado unir es el unir hello world entonces pincho unir y digo quiero unir vaya a unir solo tiene unir dos a dos vale entonces voy a decir cero elementos en la así que yo puedo venir por aquí a datos y poner longitud de la compra hay un truco y es que puedo poner este unir tantas veces como yo quiera entonces puedo poner que sepas que tienes y este unir dentro del otro unir que sepas que tienes equis elementos dentro de la lista así que esta construcción la pongo aquí dentro y al ponerla aquí dentro vamos a ver lo recargo le voy a añadir vamos a añadir un elemento este elemento se llama pues no sé cómo se llama que me queda por poner pocos así que hago clic que sepas que tienes 8 elementos en la lista y es cierto realmente tengo 8 elementos en la lista al menos que esta construcción nos permite contar aunque aquí ya lo tenemos dentro del largo esto nos está activando los elementos que tenemos en la lista pero la idea es que podamos hacerlo nosotros mediante bloques evidentemente vamos a anidar estos bloques vamos a redistribuir los porque quiero añadir uno más otro de los nodos que podemos utilizar es el nudo de comprobar si la lista contiene algo entonces en este caso voy a añadir luego ya al comportamiento del botón añadir y al añadir antes de realizar ninguna añadidura lo que voy a hacer es usar un control condicional y decir lo siguiente si será una condición en ese caso ok y si no será en este caso algo voy a hacer la condición en datos aquí tenemos la condición es antes de introducir algo en la lista de la compra qué tal si comprobamos si esa lista de la compra ya contiene eso entonces nos vamos a datos ascensores quería decir nos vamos a respuesta entonces que vamos a ir como elemento de lista que deseas introducir o yo pregunto la lista de la compra ya contiene ese elemento en ese caso no hagas nada no lo contiene en ese caso añádelo entonces por último lo que voy a hacer es que en apariencia voy a decir un mensaje durante 5 segundos algo así como no puedo añadir un contenido duplicado vamos a verlo entonces pienso añadir y yo quiero añadir cocos y al pulsar play me dice no puedo añadir un contenido duplicado o sea ya tienes cocos voy a hacer clic otra vez vamos a añadir un elemento de vista quiero añadir fresas así que hago clic y ningún problema ahí tienes las fresas como no está duplicado te dejo introducirlo así que hemos metido esta estructura condicional compleja el sí y el sino para hacer una prueba y evitar que el software me deje introducir contenido duplicado en esta lista a continuación dentro de este ejercicio quería hacer un botón más entonces voy a crear un nuevo sprite no sé de qué color hacerlo ya pues voy a hacerlo rosa morado o lo que sea entonces pincho por aquí pinto por aquí un texto de color blanco se llama buscar y buscar bien un clic y el botón queda creado vamos a programas vamos a eventos vamos a presionar vamos a apariencia vamos a fijar tamaño al 50% play se hace pequeño lo pongo por aquí y vamos allá vamos a eventos vamos a hacer clic en este objeto y al hacer clic en este objeto lo que voy a hacer es realizar una pregunta preguntar fruta estás buscando en este caso lo que voy a hacer es esperar una respuesta y en datos mejor vamos a control vamos a una estructura de pregunta compleja vamos a datos voy a decir es cierto que la lista de la compra contiene la respuesta bueno pues sí sí en ese caso voy a decir algo y si no voy a decir otra cosa entonces decir así que tienes ese elemento en la lista no tienes todavía ese elemento en la lista entonces claro yo aquí en base a esto digo bueno no tiene este momento la lista pero lo quieres quieres introducir pues borro y entonces me voy a hacer una pregunta pero ya ascensor me voy a hacer una pregunta y digo quieres introducir ese elemento cuidado porque la respuesta se va a perder vale entonces vamos a crear una variable contenido elemento a modificar venga contenido a insertar pulso ok fijo vamos a verlo contenido a insertar como la respuesta y ahora pregunto ya he guardado la respuesta en esa variable contenido a insertar ya ya le he salvado por donde no lo voy a perder en la siguiente pregunta es la gracia quieres introducir ese elemento en ese caso lo que hago es control una estructura condicional compleja y digo sí es cierto que la respuesta es sí en ese caso es cierto control es cierto que contiene operadores es cierto que contiene vamos a verlo nada vamos a datos a esconder vale en este caso es cierto que la respuesta es igual es cierto que la respuesta es igual a sí pues en ese caso lo que hacemos es que en datos añadimos algo a la lista de la compra y si no pues bueno vamos a decir pues vale pues vale así que añadimos contenido a insertar añadimos contenido a insertar a la lista de la compra vamos a ver ahora este programa para esto más grande y busco voy a buscar qué fruta estás buscando estoy buscando moras pues le doy a clic en me dice sí que tienes ese elemento en la lista y se acabó pero si vuelvo a pulsar buscar ahora qué elemento qué fruta estás buscando estoy buscando naranjas le doy a validar y me dice quieres introducir este elemento no lo tienes pero quieres introducirlo pues yo le digo no se acabó pues vale introduzco pero si lo voy a buscar y pongo naranjas ok me dice que quiere es introducir este elemento yo le digo si en este caso pulso ok y me dice sí pues toma naranjas en la lista como vemos los nodos que nos permiten trabajar con listas son geniales porque hay un montón de posibilidades que podemos hacer este ejercicio que acabo de hacer es un ejercicio demostrativo de cómo funcionan las listas pero lo que quiero que se entienda es que las listas no son solo para hacer listas de la compra o agendas de teléfonos o cosas parecidas las listas son para cualquier software cualquier programa que en definitiva cuando va a guardar datos necesita guardar no una pieza de información sino un listado un conjunto de piezas diferentes de información vamos a ver cómo lo que hemos aprendido hasta el momento más cosas que vamos a aprender en este ejercicio nos sirven para hacer juegos como por ejemplo uno tan conocido como el ahorcado vamos a crear un nuevo juego y en primer lugar lo que voy a hacer es crear una estructura de datos que va a ser una lista que va a ser un listado de las palabras posibles es decir de las palabras que el programa tiene como disponibles para elegir para el juego entonces voy a crear una lista llamada palabra posible voy a pulsar ok voy a crear una serie de elementos directamente en la interfaz no con nodos otra vez voy a trabajar con frutas así que voy a manzana voy a para frutas verduras hortalizas lo que sea recoger tomate voy a pera voy a limón escribo sin acentos voy a tengo manzana con tomate voy a fresa voy a lechuga voy a no lo sé de hacer 10 melon sin acento voy a sana en ópera tengo cuba a ver tenemos un pequeño scroll racionalmente y vamos a ver como uva [Música] voy a sacar un listado de frutas por internet y encima no tendría un listado de frutas las leves así que vamos a ver frambuesa ejemplo y por último vamos a ver naranja ya tengo 10 frutas ya está eliminó el número 11 a continuación lo que voy a hacer es que cuando arranca el juego es decir cojo el gato y al presionar esto voy a establecer un número aleatorio entre 1 y 10 porque tengo 10 elementos o puedo establecer un número aleatorio entre 1 y la longitud de palabra posible así que si voy disminuyendo o voy a aumentando esta lista el número al azar siempre irá entre 1 porque la lista siempre empieza por 1 y la longitud que sea de la lista a continuación vamos a elegir un elemento entonces vamos a datos y voy a un elemento que va a ser un número al azar entonces el personaje vamos a hacer esto un poco más pequeño el personaje va a decidir va a decir hola realmente va a decir algo he escogido a operadores me voy a unir escogido la palabra algo y ahora voy a unir con otra cosa lo uno aquí y claro parece que lo he perdido bueno no pasa nada volvemos a crearlo he escogido la palabra voy a escoger un elemento que va a ser un número al azar entre 1 y la longitud de palabra posible y todo esto lo voy a decir en apariencia he escogido esto y ahora vuelvo a unir dos puntos y un espacio y aquí pongo del listado de palabras así que esto va aquí dentro y ahora sí digo ya lo tenía aquí borro digo esto durante dos segundos es una construcción un poco larga pero ahora veremos cómo es una construcción efectiva desde el punto de vista de que va a decir exactamente lo que necesito vamos a reproducir y dice he escogido la palabra lechuga vamos a verlo otra vez he escogido la palabra naranja he escogido la palabra manzana he escogido la palabra manzana otra vez he escogido la palabra limón vemos como cada vez lo que estamos haciendo es simplemente escoger una palabra aleatoriamente por cierto que todo el rato el comportamiento por defecto de scratch es que esta lista está visible en la pantalla la idea es que en prácticamente ningún lenguaje de programación cuando creamos una variable o cuando creamos una estructura de datos más compleja como por ejemplo una lista prácticamente ningún lenguaje de programación estas variables o listas se ven en pantalla son variables y listas que existen en la memoria del programa pero no tienen por qué verse en pantalla en scratch se ven por claridad en scratch se ven para que el usuario programador pues entienda que de alguna manera tiene una variable que es como un elemento más de la escena entonces lo que voy a hacer en apariencia básicamente va a ser elegir y mostrar la variable o esconderla o lo que haga falta entonces lo que haré por tanto finalmente es mostrar o esconder voy a esconder voy a esconder la lista de palabra posible estoy en este caso no ya en apariencia sino he venido al esconder que hay dentro de la estructura de datos pulso bandera y me dice he escogido la palabra pera he escogido la palabra manzana he escogido la palabra uva he escogido la palabra pera con esto lo que quiero que entiendas es que la lista no tiene por qué estar aquí mostrada en la pantalla para que realmente el juego funcione sino que el hecho de que la lista esté mostrada es como una especie digamos de cortesía que tiene scratch para que veas visualmente valga la redundancia que tiene es una estructura de datos y qué componentes tiene pero lo más normal es que esa estructura de datos esté escondida durante la conoce el programa está en la memoria del programa pero tú como usuario no tienes por qué estar viéndola constantemente qué es lo que he hecho ahora pero también lo que quería de mostrarte es que efectivamente vamos a ver cómo podemos ver vale es que efectivamente pues sigue funcionando el juego sigue funcionando aunque tú no veas estos elementos bien sigamos otro otro nudo que quiero usar otro bloque es el elemento 1 no me voy a operadores y puedo escoger la letra 1 así que voy a decir que la primera letra vamos a unir la primera letra de la palabra es y voy a decir en este caso apariencia es decir ella tenía por ahí así que la primera letra de la palabra es pues me voy a datos me voy a decir vamos a ver no en operadores me voy ahora posible me voy a operadores y quiero la letra 1 de palabra posible cuidado en este caso porque palabra posible es una es una palabra entera en este caso es una estructura de control yo lo que quiero es esto entonces voy a hacer lo siguiente voy a hacer una nueva variable llamada palabra seleccionada ya sé que estarás pensando esto que estamos haciendo no se parece en nada al ahorcado pero lo que estamos haciendo es como una especie de prerrequisitos para hacer el ahorcado pulso ok bien y en este caso lo que voy a decir es lo siguiente fijar palabras seleccionadas el elemento al azar entonces ahora la palabra que he escogido es palabra seleccionada y quiero que me digas la letra número uno de palabras seleccionadas vamos a por ello vamos a ver si ahora sí lo tenemos entonces digo él ha escogido la palabra fresa y la primera letra de la palabra es f has escogido la palabra pera y la primera letra es p has escogido la palabra manzana y la primera palabra la letra de la palabra es m luego estamos viendo como el programa es capaz de escoger una palabra al azar y de esa esa palabra al azar la meto dentro de una variable y de esa palabra al azar seleccionó en este caso la primera letra vamos a continuar vamos a continuar por cierto tengo esta variable mostrada en pantalla entonces lo que voy a hacer es esconder variable escondo lista escondo variable y así no veo nada pero sigue funcionando porque las variables están por detrás del programa con esto esto de decir la palabra seleccionada lo voy a quitar porque realmente ya sabemos cómo funciona ya hemos visto cómo funciona fijar palabras seleccionadas pesará el gato me va a decir lo siguiente el gato me va a decir dime qué va a decir realmente no me va a preguntar sensores pregunta y me dice dime una letra y espera una respuesta así que cuando me da una respuesta lo que hago en este caso es en una estructura de control repetir algo varias veces entonces lo que voy a hacer es ir uno a uno en el número de letras que tiene la palabra y comprobar si la letra que me han dicho está dentro de esa palabra vamos a verlo repetir cuantas veces por repetir la longitud tengo fijar palabras seleccionadas tengo la variable pues aquí en operadores tengo la longitud de la palabra seleccionada es decir voy a repetir algo por tantas letras como tenga la palabra seleccionada en este caso en este caso lo que voy a hacer es comprobar si en operadores la letra algo de hello world es cierto es cierto que la letra 1 de hello world es cierto que la letra 1 a quien no persona lo tenía de hello world es igual a la respuesta pues en ese caso diré ok bueno a ver esto está mal porque no tiene que ser una estructura de control sencilla tiene que ser una estructura de control compleja si esto es cierto en este caso lo que voy a hacer es decir has acertado y sí no has fallado en este caso estoy trabajando únicamente con la letra 1 de hello world así que voy a hacer clic dime una letra ostras déjame esto esto fuera y esto dentro así que play la palabra es frambuesa así que vive una letra la letra es f ok has fallado vale vamos a verlo si la letra 1 d la letra 1 de palabras seleccionadas ahí está vamos a ejecutar has escogido la palabra pera dime una letra p me dice has fallado otra vez la letra 1 de palabra seleccionada es igual a respuesta vale en este caso debería ser correcto voy a quitar este bloque repetir voy a poner el bloque condicional voy a ejecutar escoge la palabra manzana de una letra película m has acertado vale ahora vuelvo a ejecutar ha escogido la palabra manzana te pongo una y me dice has fallado ok bien otra vez ha escogido la palabra melón pongo la m y me dice has acertado porque de momento estoy evaluando la letra número uno de la palabra seleccionada pero ahora a través de una operación de repetición quiero evaluar todas y cada una de las letras eso quiere decir que voy a necesitar una variable llamada contador entonces en el contador cada vez que ejecutó el contador lo que hago es fijar contador a uno en este caso letra número contador y cada vez que acabo el bucle en operadores debo tener un operador para el que debería sumar un valor aquí cambiar el contador por 1 vale a continuación lo que voy a hacer en este caso es comprobar para cada uno de los elementos si la letra contador es y el contador voy sumando en cada iteración está incluida el contador lo puedo esconder esconder variable contador vamos a ejecutar la palabra es melón vale pues dime una letra dime la e fallado vale ok pero ya es acertado y has fallado y has acertado y has fallado el problema está en los siguientes de 102 la pantalla palabra melón cojo la el problema es que me dice la primera mal la segunda bien y las otras tres mal vamos a verlo mal pero luego me dice bien y luego me dicen mal y luego me dice otra vez mal y luego me dice otra vez mal porque va por todas las letras comprobando si esto es correcto o no entonces esta estructura de control empieza a funcionar voy a borrar esto esta estructura de control empieza a funcionar pero hay algo que todavía no acaba hay algo que todavía no acaba de funcionar vamos a poner zumo original en este caso voy a crear otra variable llamada correcto entonces al principio yo le digo correcto es igual a no así que fijar correcto antes de empezar fijar correcto o no y yo digo si has acertado esto si es acertado en ese caso fijar correcto así y entonces al final del todo cuando repito la operación cuando acabo de repetir la operación lo que hago es una operación de control en la que digo si es cierto operadores que la variable correcto es igual a sí y realmente eso es una estructura compleja vamos a poner sí sí no sí es cierto que correcto es igual a sí en ese caso es acertado en caso contrario a su hallado vamos a verlo vamos a verlo ahora le damos a play has escogido la palabra pera así que ahora dime una letra de la p y me dice has fallado vale interesante porque correcto es igual a no correcto vamos a verlo hoy la palabra fresa primera letra acertado bien pero no primera palabra en una letra la s los fallado juraría que lo que está haciendo es que si le digo la letra final en ese caso me dice has acertado vamos a ver fijar correcto es igual a no si entonces esto pues esto debería estar funcionando naranja cogerla r y me dice has fallado pero siempre que cojo la última letra me dice has acertado bien pues vamos allá vamos a evaluar un poco esta estructura que tengo en la pantalla porque evidentemente debe haber un error así que me voy a fijar contador voy a hacerme ver una cosa cuando un programa no funciona y no sabes por qué lo que hacemos generalmente en lenguajes de programación más avanzados es usar una cosa que se llama la depuración la depuración son una serie de técnicas que nos permiten buscar dónde está un error nos permiten localizarlo y nos permiten arreglarlo voy a grabar esto en el siguiente vídeo y así dedicamos un vídeo específicamente a esta cuestión bueno pues vamos a hablar de la depuración entonces en este caso lo que voy a hacer es qué letra a letra voy a decir lo siguiente vamos a ver muy apariencia voy a pensar algo entonces yo digo lo que voy a pensar es operadores unir la letra actual es y es esto así que duplicar y aquí así que pienso operadores y pongo la letra seleccionada y es respuesta respuesta y ya está así que esto lo aplicó también lo pongo aquí sea como sea y vamos a verlo entonces lechuga en la e hay que actuar y se le agradece el estrés actual es la letra seleccionada s la letra actuales ce al resonar s es correcto en principio es correcto es correcto es correcto entonces voy a poner otro pensamiento qué va a decir en operadores el valor de la variable correcto es y quiero el valor de la variable correcto eso también lo duplicó lo pongo aquí y vamos allá he escogido la palabra lechuga de mina letra la e layton sl letra seleccionada s y por tanto correcto es no los detractores y como qué perdona como que la lechuga haber escogido la palabra limón ninguna letra la m m ya veo lo que pasa fijar contador a 1 longitud de palabra seleccionada vamos a ver dejar el contador a 1 fijar correcto es igual a no no fijar palabras seleccionadas a elemento al azar de palabra posible vale pues voy a hacer otro pensamiento y el pensamiento operador de unión la palabra espera que para el programa la palabra seleccionada es palabra seleccionada por cierto que todo esto realmente le puedo meter aquí y esto lo pongo fuera y así lo hacemos una sola vez vamos allá vamos a ver han escogido la palabra uva primera letra la ub la palabra seleccionada es manzana pues yo diría que no la letra actual evidentemente no evidentemente no entonces fijar palabras seleccionadas he escogido la palabra palabra seleccionado vale aquí está el problema ahí está el problema fijar palabras seleccionadas este decir no puede ir aquí este decir tiene que ir después ahí está el problema ejecutó he escogido la palabra frambuesa divina letra la r la palabra es lesionada de frambuesa el tractor es la r la r varias variables correcto es no vale la la r y es si ahí tenemos otro punto donde tenemos que detectar el error y tenemos que corregirlo entonces en este caso vamos a ver fijar correcto a no de entrada otra cosa es que parece que me está contando mal las letras vamos a poner el contador a cero has escogido la palabra manzana dime una letra manzana en la letra es la m luego el contador tiene que estar a 0 luego a l correcto es igual a no ahora manzana la letra actual es la la que ha seleccionado es la hora de correcto debería ser sí pues va a ser que no muy bien pues sigamos entonces a continuación y aquí está este contador este contador este contador ahí está probablemente debería ir arriba vamos a verlo ejecutamos escogido la palabra pera de una letra y empezamos la p he escogido la luego no es correcto no ahora la pera has escogido la e la letra es la e luego correcto es igual a no bien vale bueno estamos ahí la letra actual es esta vamos a ver letra contador de palabra seleccionada muy bien el valor de la variable correcto tiene que ir después de la estructura de control vamos a verlo frambuesa una r ejecutó la palabra es frambuesa la letra actual es la f y la letra es la r luego variable correcto es igual a no la palabra es frambuesa la letra es la r la letra es la r luego correcto es igual a sí ahora sí palabras frambuesa la letra es la a la letra es la r luego correcto es igual a sí claro en este caso ya se queda cambiado para siempre porque ha encontrado una coincidencia ok en principio principio esperamos a que acabe evidentemente pero básicamente ya lo tenemos nos quedan tres letras y lo que quiero estoy esperando a la ejecución de este bloque para que finalmente me diga si he acertado o no estamos con la última letra entonces si esto es correcto ok vale entonces has acertado esta es la cuestión después de esto ya puedo quitar estos bloques de pensar que los bloques de pensar son solo los bloques temporales tampoco los quiero eliminar porque quién sabe si más adelante me pueden servir pero de momento los quiero mover fuera de la pantalla bien tengo ahora esto entonces vamos a ejecutarlo la palabra de suba la letra es v has acertado ejecutó de nuevo lechuga os quiero la fe y me dice has acertado pero la palabra es naranja cojo la letra e y me dice has fallado ya tengo que ahora el gato es capaz de reconocer sí es cierto que la letra en un momento dado pues va a poder trabajar correctamente bien sigamos voy a crear un nuevo sprite entonces para crear un sprite vamos a hacer el propiamente el ahorcado entonces vamos a vamos a por una parte el suelo un nuevo disfraz así que otro palo otro disfraz otro palo otro disfraz otro palo otro disfraz los cambios también conviene que los guardas de vez en cuando vamos a ver estamos guardando un poco de respiro al programa me recuerda que tenía que haber guardado por cierto pero bueno aprovecho de algo siguiente vídeo vale tras un rato de espera ya se ha guardado en lo cual me recuerda que debo ponerle título así que curso de scratch proyecto 7 y archivó guardar guardar por si acaso bien seguimos con los sprites entonces ponemos aquí la cabeza nuevo sprite y aquí vale pero porque la cabeza no se ha guardado entonces voy a borrar este ahora duplicó este sprite vamos a crear el cuerpo duplicó otra vez creamos un brazo duplicó otra vez creamos el otro duplicó otra vez creamos una pierna duplicó otra vez creamos la otra pierna y yo creo que ya entonces tenemos como vemos un spray donde van apareciendo diferentes disfraces y en los diferentes disfraces pues están los estados del ahorcado el programa sigue guardando cambios vale yo mientras tanto voy a seguir trabajando entonces yo lo que quiero ahora en este caso vamos a ver es que en apariencia yo cambié el disfraz entonces en este caso voy a hacer lo siguiente en todo momento dado que las variables son compartidas voy a crear una variable llamar una variable llamada puntos una variable que sirve para todos y cada uno de los elementos entonces yo lo que hago voy a mover el ahorcado un poquito más lado yo lo que hago es que puntos empieza valiendo cero voy a seleccionar el gato y digo cuando empieza el juego fijar puntos a 0 el juego empieza en cero el objeto 1 empieza con el disfraz pero se llama el disfraz 1 y yo a partir de aquí vamos cuando en ese caso se llama el disfraz 1 voy a fijar puntos a 1 disfraz voy a nombrarlo entonces esto es uno 23 voy a nombrar los disfraces como el valor de la variable para que la variable pueda modificar al disfraz ahora vamos a ver cómo 5 6 a ver que se escapa 8 9 entonces para el programa para el gato lo que voy a hacer es que si es cierto has acertado en ese caso ok no pasa nada pero sí es cierto que has fallado en ese caso lo que voy a hacer es cambiar contador cambiar puntos perdón por 1 es decir sumar un punto voy a sumar un punto el objeto lo dejó otra vez en el disfraz 1 entonces a continuación lo que voy a hacer es en el objeto 1 en el ahorcado propiamente marcado voy a decir por siempre al presionar la tecla por siempre una vez por segundo para tampoco estar machacando demasiado el programa voy a cambiar la apariencia el disfraz del personaje al valor de la variable puntos vamos a verlo así que le voy a play has escogido la palabra limón esto es una pequeña trampa que luego quitaremos de una letra la y pulso ok me dice has acertado luego el ahorcado no avanza pero esto necesito volver a ejecutarlo siempre entonces vamos a hacer lo siguiente conocer en este caso es que este bloque de sprite se repita por siempre todo esto de aquí haber escogido la palabra vale pues todo esto se va a ejecutar por siempre todo este bloque de aquí de pregunta me elimina la letra y todo esto se va a ejecutar por siempre o al menos hasta que el juego acabe escogió escoger la palabra limón así que dime una letra lay ok has acertado ahora dime una letra la m has acertado pero ahora la a limón no tiene la has fallado luego un palito primera letra la zeta limón tampoco tiene la zeta has fallado a la vena y ahora de una letra la ere limón no tiene la ere su hallado pues por otro palito de una letra la ml ivonne sí que tiene la m luego has acertado no avanzamos palito bien de una letra la w pues has fallado pues toma otro palito avanzamos en el ahorcado como vemos tenemos ya un ahorcado en pantalla evidentemente lo que tenemos que hacer ahora es especificar un poco cuál sería la letra en el pse o sea la palabra en el sentido de que por ejemplo bajo del ahorcado lo que podemos hacer es crear una serie d de letras digamos en las que podemos seguir trabajando vamos a ver en este caso además en el ahorcado cuando el juego empieza lo que podemos hacer es tener un listado de elementos que los tenemos un listado de elementos en los que bueno vamos cambiando por aquí las letras entonces en este caso lo podemos hacer con un sprite hay varias maneras de hacerlo vamos a ir a sprites en sprites por aquí hay letras a verlos sprites y juraría es un haber visto letras tenemos blogs porque no sé cada una de estas letras dentro lleva a los sprites lleva los disfraces y va a ser que no les me haría falta algo como una serie de letras con disfraces es decir que tuviera todas las letras que pudiera ponerlas en pantalla tengo que pensar una manera de cómo puedo introducir toda esta información bien dado que no existe algo preparado en scratch como lo que yo quiero me lo voy a tener que construir entonces voy a crear un nuevo objeto que va a estar basado en una letra que va a ser la x por defecto como primer como primer disfraz y a continuación voy a ir añadiendo diferentes disfraces entonces letras y blog y añadiendo disfraces letras b letras c y poco a poco hasta llegar al abecedario h en un momento lo tengo hecho w y y la zeta voy a quitar la equis más que nada por no tener un duplicado pero ahora por lo menos tengo una letra que tiene todos los estados entonces lo que haré ahora por ejemplo es empezando desde cero voy a ir a la equis cuando empiezo el juego a lo que quiero es crear un bloque crear un bloque por aquí en el que me diga la las x de la palabra que he elegido entonces vamos a ver en primer lugar en apariencia cambiar fijar tamaño a 50% de que de la letra claro pues no ok vamos a verlo cuando empiezo fijar tamaño al 50% en movimiento ir a la x 0 y 0 ok bien y ahora el ahorcado lo pongo por aquí y ahora quiero poner la palabra entonces en este caso selecciona la palabra y voy a repetir algo el número de veces que sea la longitud de una palabra la longitud d la palabra seleccionada voy a esperar momento para que se elija la palabra así que voy a esperar un segundo cuando tarda el programa en elegir la palabra teóricamente es inmediato pues voy a hacer que esto espere un segundo para asegurarse que primero se ha elegido la palabra nuestro se ejecuta hasta que no pasa un cierto tiempo repetir bueno puedes mover 10 pasos hacia adelante y entonces antes de esto e introducir vamos al contador porque aquí lo que quiero es cambiar el disfraz pues quiero cambiar el disfraz a la letra actual entonces según la longitud de la palabra seleccionada un nuevo dato una nueva variable contador 2 contador 2 no fijo a uno creo que es contador 2 fijo a 1 entonces en este caso ahora cada vez que paso por aquí cambio contador 2 a 1 cambio el disfraz y el disfraz va a ser una unión la letra la letra contador 2 d palabras seleccionado vamos a ver si es correcto ejecutó la palabra es frambuesa nos hemos visto que frambuesa limón si no lo vemos correctamente lo que voy a hacer es poner una espera de un segundo y aquí voy a aumentar 20 pasos vamos a verlo ahora la palabra inflexión así que lee sí ga ahí la tenemos este bloque lo que está haciendo es esto otra vez la palabra es fresa fresa ok la palabra es fresa otra vez fresa otra vez otra vez fresa manzana pasamos con manzana pero en este caso esto está bien pero no quiero que se quede un poco pues digamos la letra todo el rato en el sitio vale entonces lo que quiero hacer en este caso es crear clones para cada uno de los clones voy a crear un clon crear clon de mí mismo crear el clon de mí mismo al empezar como clon cambiar el disfraz esto es lo que va a ser difícil comenzar como clon voy a crear una variable temporal llamada letra actual más que nada para poder decir qué letra actual letra actual esto y ahora poder poner letra actual vamos a ver si todo ha ido bien los play escogido esperado vale casi escoger la palabra naranja efe parece parece que sí que quiere pero está ya a punto naranja han escogido la palabra limón aparte de que debo avanzar más pasos y tampoco tantos 30 pasos limón esqueda y la letra bien pues ya prácticamente lo tenemos prácticamente lo tenemos voy a crear el clon aquí arriba cambiar el contador luego después lechuga ahora parece que sí lechuga en este caso fresa en este caso me está escribiendo los nombres de las letras cuidado porque esto te está haciendo es trampa técnicamente no tiene que ser letra actual sino que tiene que ser explotó tiene que ser explotó porque me tiene que poner x me tiene que poner una equis con la cada una de las letras recordemos la letra espera así que me tiene que poner 4x para que yo sepa que hay hay cuatro elementos parece que sobra un elemento vale ahora veremos qué elemento es pero en definitiva la idea es esta la idea es que la ópera pero hasta el correcto hay una por ahí y esto debería ser una equis voy a estar con el disfraz de la equis vamos a darle lechuga pues pone tantas equis como tenga la palabra lechuga y yo ahora evidentemente lo que tengo que hacer es que si fallo se va dibujando el ahorcado y si acierto pues en ese caso se va revelando la letra correspondiente y yo lo que quiero la parte de que en las letras voy a quitar el esperar un segundo pinchar fuera en la palabra uva ahí está la uva la palabra naranja ahí está la naranja cada vez que elijo una letra lo que quiero es decirle a las letras que se tienen que eliminar vale entonces voy a hacer lo siguiente voy a venir por aquí y decir si es correcto es decir si la palabra es correcta en este caso voy a enviar un mensaje que había eventos envío un mensaje y un mensaje ok si es correcto cuidado si es correcto envió un mensaje y el mensaje es borra letras esto en sí y no hace nada porque he escogido frambuesa tengo una letra la r he acertado pero no borra las letras entonces lo que voy a hacer a continuación es que me voy al clon y voy a decir que cuando reciba el mensaje borra letras en ese caso quiero en control borrar este clon borrar todos los clones acepto toma te escribo la zeta efe as fallado por un palo pero las letras no pasa nada más pero si no toma te creo pongo la te has acertado pues lo que hace es que borra las letras borra de hecho incluso se deja la última la última porque no es un clon pero al recibir borra letras quiero borrar este clon pero también quiero ejecutar el volver a escribir todas las letras entonces en este caso lo que voy a hacer va a ser que al recibir en eventos al recibir borra letras me espero un segundo y entonces duplicó este bloque o sea vuelvo a escribir las letras le doy aquí ya clic escojo manzana la m he acertado y entonces vuelvo a escribir las letras ahí está la idea de una letra pues quiero la ok he acertado venga pues y pam vuelve a escribir las letras bueno la idea es que evidentemente si vuelvo a escribir las letras es para que cada una de las letras que he escrito se cambien digamos y escrito la pues que en ese caso la a se cambie por la letra correcta que yo he escrito entonces esto lo tenemos que hacer aquí fijar el disfraz el disfraz en este caso no se está cambiando fijar letra actual entonces yo lo que voy a hacer es lo siguiente voy a hacer sí es cierto y si no es cierto entonces digo es cierto qué operador operador de igualdad la letra actual es igual a la letra temporal es que ahora mismo no tengo ninguna letra temporal tengo una respuesta una letra pues una nueva variable letra seleccionada letra seleccionada por la respuesta esto es letra seleccionada y ahora dentro de la equis letra seleccionada es letra actual entonces cambiar el contador no esto para siempre entonces cambiar el disfraz en caso contrario por la equis y en caso correcto en caso afirmativo por la letra entonces cambiar el disfraz a una unión de la letra seleccionada x block a ver si es cierto voy a ejecutar tomate escojo la letra o si esto es cierto vamos a funcionar correctamente vale me ha parecido que escribía la vamos a poner la m prefiero cambiar el disfraz unir la letra seleccionada vale pues voy a poner ya sabes un mensaje de unir la letra seleccionada es datos letras seleccionadas vamos a ver si es cierto has escogido lechuga quiero la fe ok has acertado tiene una letra la fe es que sí que había escrito la fe por un momento había escrito la fe y juraría yo vamos a verlo fresa ok has acertado vale bien que me está cambiando todo alex block entonces ejecuto vamos a ver limón la m ejecutó y me cambia la última vale simplemente lo que tengo que hacer es modificar esa m para que me la cambie en la letra correcta pero ya estamos viendo como prácticamente tenemos la capacidad de detectar la letra actual aunque no nos demos cuenta scrats internamente funciona con un método basado en capas vamos a crear un nuevo proyecto voy a llamar a este proyecto curso scratch ejercicio 10 10 número 10 con letra lo que sea bien así que en este caso voy a importar un nuevo objeto voy a importar algo que sea que tenga forma de carta o similar bueno tengo un botón realmente podría servir tengo una bandera cualquiera de estos elementos podría servir vale pues vamos a seleccionar por ejemplo el botón así que pulsamos ok eliminó al gato pongo el botón y ahora a continuación cuando empieza el juego voy a crear 10 copias de este objeto entonces voy a mover en este caso voy a apuntar en dirección 45 grados ya que no solo estamos limitados a las direcciones 0 90 90 y 180 sino que podemos poner el número que queramos voy a mover 10 pasos y voy a crear un clon entonces creó un clon de mí mismo y continuó entonces ejecutó y como podemos comprobar lo que ocurre es que se crean diferentes objetos voy a decirle a este objeto que no quiero que se gire por tanto le pongo el giro solo en horizontal vuelvo atrás le doy a play tengo ahí los diferentes objetos así que la pregunta en este caso es porque los objetos aparecen unos detrás de otros entonces la respuesta es porque trabajo siempre con un sistema basado en capas la idea es que con un sistema basado en capas cada nuevo objeto que creó automáticamente pasa a estar en la capa por delante de todos los demás entonces si yo quiero cambiar un objeto de capa esto se puede hacer sin ningún problema simplemente tenemos que ir a las opciones de apariencia y en las opciones de apariencia fijamos nos fijamos que tenemos la idea de enviar al frente y x capas hacia atrás y curiosamente no está la opción de enviar al fondo igual que está enviar al frente y no está y x capas hacia delante pasa nada porque con números negativos se puede conseguir todo así que me voy ahora a establecer un par de eventos al presionar la tecla por ejemplo flecha hacia arriba a presionar la tecla flecha hacia abajo entonces vamos a ir a apariencia y voy a decir que y una capa hacia atrás era una capa hacia atrás en este caso al pulsar la flecha abajo quiero ir una capa hacia atrás al pulsar la flecha arriba quiero ir – una capa hacia atrás así que pulso play bueno déjame que al principio le diga al juego que la carta debe estar en 0 0 así que pulso play y ahora pulsó el botón hacia atrás y fijémonos como esta carta va yendo hacia adelante la idea con las capas finalmente es que voy rotando voy rotando voy rotando y voy específicamente indicando hacia dónde va cada una de las capas la idea como vemos es que el juego scratch lo que hace es ordenar me automáticamente las capas de forma que el siguiente objeto que llega ocupa la capa superior pero no hay demasiado problema en el sentido de que siempre vamos a poder cambiar el orden de estas capas vamos a usar bueno en este caso este conocimiento que acabamos de adquirir para poder trabajarlo y poder aprovecharnos de él cuando estamos realizando un juego voy a crear un juego de memoria el clásico juego memory voy a guardar ahora vuelvo a la pantalla principal y hago un nuevo proyecto lo que sea entonces para jugar a este juego me morí lo que tengo que hacer es crear diferentes objetos vamos allá y vamos en este caso a ver qué sprites tenemos y bueno básicamente básicamente podemos trabajar con diferentes cosas entonces vamos a ver vamos a por letras por ejemplo así que voy a crear un nuevo elemento disfraz 1 voy a llamar a un disfraz de la biblioteca el disfraz va a ser la letra a ok creo un nuevo disfraz que va a ser la letra letra b lo mismo con la fe y lo mismo con la ve tengo por aquí y va a filtrar pero no aparecen con el filtro así que cojo la fe y después de la fe lo que voy a hacer por último es la ve vamos allá con la que estamos aquí pulsamos ok eliminemos el disfraz aquí tenemos esto bien ya tenemos un disfraz ahora tenemos que crear cuatro elementos diferentes vamos a hacer lo siguiente en este caso lo que yo quiero es crear x elementos diferentes entonces en este caso quiero que se recuerde quiero que el elemento disponga de la información acerca de qué disfraz que me cogieron ahora mismo para ello haré lo siguiente vamos allá vamos a ver voy a decir que cuando empiece el juego quiero crear dos copias de la a dos copias del ave dos copias de la fe y dos copias de la de entonces en este caso voy a hacer lo siguiente voy a repetir algo 4 veces y voy a decir me voy por ejemplo aquí estoy en menos 145 40 menos 145 40 quiero crear un clon de mí mismo esto está en control crear clon y luego quiero avanzar por si acaso apuntó en la dirección 90 y muevo creo que van a ser 30 pasos así que ejecutó y tengo cuatro letras 30 pasos un pocos vamos a poner 60 y tengo bueno como estoy repitiendo realmente cuatro veces lo que quiero es al final esconder ejecutó y me quedo con las cuatro letras y la original la escondo solo quiero los flores en este caso además vamos a ver cuando en control aquí en control cuando comenzamos como clon quiero seleccionar el disfraz y aumentarle un valor siguiente disfraz o ejecutamos y cuidado verdad porque el objeto está escondido entonces voy a ir a apariencia de mostrar ejecutar y luego esconder en este caso está ejecutando un disfraz pero está poniendo siempre el siguiente disfraz no hay ningún problema vamos a ejecutar una variable llamada contador entonces creamos una variable le ponemos contador y a continuación cada vez que creé un clon le digo cambiar contador por 1 entonces en este caso al comenzar como clon no quiero el siguiente disfraz sino que quiero cambiar disfraz voy a elegir los disfraces este va a ser 2 3 y cuatro para que estén relacionados con el contador establezco que el contador es cero y vamos allá y cambiar el disfraz por contador ejecutamos y me da a veces el contador va subiendo cada vez que paso por aquí al contador le sumó un valor con lo cual aparece a bf y d en este caso además quiero repetir este bloque así que duplicó este bloque e incluso voy a decir que fijó el contador otra vez quieto fijo el contador a cero entonces ahora quiero decirle al sistema voy a la siguiente dirección voy a menos 145 y 40 pues no menos 20 no lo sé vamos a verlo play bien y abc de abs ve y al final esconder a ejecutar a veces de abc de vamos a menos 40 y así tenemos las cuatro letras en pantalla podemos decir vamos a ver vamos a poner sesenta y menos sesenta vamos a decir que quiero avanzar 80 pasos y así a ver si separamos un poco más las letras y aquí 80 pasos ahora sí tengo las letras en pantalla en este caso lo que necesito es decirle al sistema que cuando yo haga clic en una letra debe reconocer la letra en la que he hecho clic entonces vamos a control vamos a ver ahora mismo que reconoce me voy a control aunque voy a eventos y le digo al hacer clic en este objeto lo que quiero es comer algo para decir hola pensar pensar durante dos segundos así que tocó y le digo y hago clic efe y toco clic y dice y toco clic efe en este caso ya tengo ocho cartas sobre la mesa y al hacer las ocho cartas ya reconozco el clic en cada una de ellas vale vamos allá vamos allá fijémonos que tenemos aquí abajo unas cuantas variables un poco no definidas o sea no usadas no hemos abordado todavía y ahora las quiero usar entonces al hacer clic en este objeto le digo dime líder del disfraz dime el número de disfraz entonces hago clic y me dice uno correcto hago clic y me dice 2 correcto hago clic y me dice 3 correcto hago clic y me dice 4 entonces esto quiere decir que ya estoy reconociendo todas y cada una de las etiquetas que tiene la letra esto parece que tenga poca utilidad pero no es así porque tú dirás bueno pero si ahora estás viendo qué más te da si es una para qué quieres saber qué es el disfraz número uno porque recuerda vamos a hacer el juego memory 3 yo de momento estoy viendo las cartas pero más adelante la idea es que no las debo poder ver dicho esto dicho esto ahora nos vamos a lo siguiente nos vamos a hacer una estructura de control tal que de alguna manera se tiene que acordar de que cuando yo hago clic en un primer objeto y cuando hago clic en un segundo objeto el programa se tiene que acordar de quién es el primero quién es el segundo tiene que averiguar tiene que decir ah pues vale la carta en la que has hecho pues es correcto verdad o sea es la misma vamos allá para ello voy a crear un par de variables más en este caso voy a crear la variable primera carta y voy a crear la variable segunda carta y luego voy a crear otra variable más llamada paso el paso es el paso en el que estoy estoy en el paso 1 o estoy en el paso 2 cada vez que yo hago clic a un objeto el paso que paso por cierto empieza valiendo 1 modificarla no pasa nada porque voy a decirle que al presionar fijar paso a 1 asunto solucionado bien y digo esto lo puedo quitar ya al hacer clic en este objeto es cierto que estoy en paso 1 vale pues vamos allá es cierto que estoy en el paso 1 es cierto que la variable paso es igual a uno si es cierto voy a hacer una cosa si no es cierto voy a hacer otra sí es cierto que la variable paso es igual a 1 en ese caso voy a decir que fijar primera carta y de dónde está esto al disfraz al líder del disfraz el objeto en el que he hecho clic y después de hacer esto voy a aumentar el valor del paso por o no si estoy en la segunda carta en este caso lo que voy a hacer es una comparación y le voy a decir es cierto operador de igualdad el líder del disfraz en el que acabas de hacer clic es igual que la primera carta si es igual en ese caso voy a decir ok correcto ok correcto si no voy a decir a su hallado esto quiere decir esto quiere decir que vamos a verlo al final recordemos en datos cambio paso por menos 1 y vamos a verlo vamos a ver si ya tenemos el juego mínimamente en funcionamiento así que hago clic aquí y digo clic y digo clic y me dice ok correcto vale hago clic y hago clic y me dice ok correcto pero hago clic en ce hago clic en the me dice has fallado hago clic en y hago clic en b y me dice has fallado pero si hago clic en de y hago clic en the me dice ok correcto en este caso tenemos ya un prototipo del juego memory donde lo que hemos conseguido el momento es que al hacer clic en varios objetos digamos cartas estos objetos de momento por defecto pues como te diría yo reconoce si los elementos en los que he hecho clic son iguales son el mismo o no lo son continuamos escondiendo un poco las cartas voy a hacer que para añadir un nuevo sprite voy a ir al botón 3 esto será la carta que quiero esconder por cierto que al principio del juego quiero esconder la variable paso quiero esconder la variable primera carta quiero esconder la variable contador y por cierto que segunda carta yo creo que al final no me hace falta entonces voy a borrar la variable y ya está hay una cosa menos si es cuando las variables y a trabajar a continuación voy a trabajar con esta carta voy a ver el disfraz vale evito el disfraz voy a girar para darle un poquito de forma de carta verdad que pueda ocultar a las letras donde están las letras vale 3 una carta aquí vamos a verlo y ahora bueno lo que podemos hacer es duplicar entonces duplicar de forma que se cree en equis cartas por delante así que yo voy a hacer lo siguiente es decir cuando hago play cuando le voy a play espérate un segundo espérate un segundo y ahora repite me cuatro veces tiene menos muéstrame evidentemente ves a esta dirección es a esta dirección que yo te digo repite cuatro veces crea un clon avanza bueno apunta en dirección 90 bien 9 no se sean 60 pasos y vamos a verlo del todo final final final esconde play y cuatro cartas más presenta pues 120 no sé si será suficiente perfecto vale ahora repetimos otras cuatro veces duplicamos vamos a vamos a aquí está fuera esto dentro esto esconder esto borrar probamos y bueno vale perfecto pues van cuatro cartas así que a continuación lo que quiero es que al pulsar cada una de las cartas lo que ocurre es que me deje ver el fondo el problema de esto es que hemos puesto las cartas de forma que bloquean a las anteriores quiero decir con esto que voy a control y de igual a comenzar como clon realmente no al hacer clic sobre este objeto entonces escondo temporalmente dong tam pam pam pam escondo escondes condes cuando aquí escondo vale con lo cual hago clic el objeto se esconde hago clic en la reveló un objeto hago clic en la ve y dice has fallado bueno ahora lo que debería ocurrir es que se deberían volver a mostrar las cartas entonces para esto me voy al objeto y le digo si has fallado en ese caso por ejemplo voy a hacer un broadcast voy a enviar un mensaje los mensajes están en sensores no están los mensajes en eventos que es enviar el mensaje renovar nuevo mensaje renovar renovar ok entonces aquí la carta le digo cuando recibas el mensaje renovar en este caso muestra todas las cartas vamos allá entonces le doy a la a le doy a la vez incorrecto y has fallado y punto bueno al final se muestra incluso la carta final esto es un poco lo de menos entonces le doy primero a esta primero a esta le doy a la a y ahora es básicamente lo que ocurre es que has acertado y no pasa nada le doy aquí al ave y a perdón a la ok correcto que hay que hacer doble clic hay que hacer dos veces clic le doy al ave ok correcto pero ahora le doy a la fe y luego al ave y me dice has fallado y pump se vuelven a poner todas entonces lo que tendría que hacer en este caso es que de alguna manera el sistema recuerde que elementos sean se han eliminado vale qué elementos ya no existen porque en este juego ahora mismo si fallo una de las cartas lo que ocurre es que se vuelven a mostrar todas a la vez de esta forma podemos trabajar con mostrar con cambiar el fondo del todo y el problema que tenemos dentro de scratch es que nos es difícil realizar operaciones tales como por ejemplo la selección de cartas es decir la selección de duplicados después de haber realizado una acción entonces voy a voy en este caso a borrar el sprite hola eso aquí y ya está entonces voy a ir al sprite voy a ir a disfraces y en disfraces voy a realizar la siguiente acción en primer lugar voy a crear un nuevo spray vamos a podemos modificarlo entonces voy a crear vamos a tocar la carta [Música] y en este caso la relleno con un color naranja vamos a ver si tapa parece que sí entonces duplicó este sprite lo pongo aquí duplicó este sprite lo pongo aquí y duplicó este sprite y lo pongo aquí entonces esto es 1 y esto es lo cambiar nombre aquí esto es uno tapado si estos dos estos dos tapados si esto es 3 esto es 3 tapado si esto es 4 estos 4 tapados no bien con lo cual ahora le damos aquí a play claro no quiero avanzar un disfraz quiero avanzar dos así que vengo por aquí y le digo que cada vez que paso por aquí vamos a ver cambiar contador al hacer clic sobre este objeto no pero este objeto vamos a ver dónde estamos cambiando aquí entonces el contador lo quiero subir cambiar disfraza el contador a pose que debería estar cambiando sí vamos a ver al contador voy a decirle cambiar contador a 2 y cambiar contador a 3 y cambiar contador a 215 veámoslo muy bien ahora tenemos todas las cartas tapadas entonces fijar contador a uno y fijar contador a uno y ahora si tenemos las cartas abiertas en este caso vamos a ver fijar contador al comenzar la variable cambiar disfraza contador vale primero lo suficiente para hacer esto y que nos diga ok correcto y es suficiente para hacer esto y que nos diga has fallado vale ahora lo que quiero en definitiva es decirle al programa que lo que tiene que hacer es que cada vez que yo muestre una carta cada vez que yo haga clic en una carta tiene que ir al siguiente disfraz entonces contador a cero contador a cero y cada vez que haga clic en un clon lo primero que voy a hacer es siguiente disfraz siguiente disfraz por aquí siguiente disfraz por aquí así que tenemos las cartas hacemos clic una carta hacemos clic otra carta y nos dice ok correcto hacemos clic hacemos clic y nos dice has fallado entonces sí nos dice has fallado lo que tendríamos que hacer es cambiar vamos a ver al siguiente disfraz realmente no al anterior disfraz entonces realmente sigue disfrazó vale pero bueno no es lo que quiero entonces lo que quiero en este caso es tapar tapar esta carta para tapar esta carta le puedo decir que quiero cambiar al disfraz vamos a ver quiero cambiar si has fallado renovar de momento ya no vale bien cambiará disfraz a 4 tapado cambiará disfraz dime el líder del disfraz -1 entonces operadores – 1 dime cuál es el ide del disfraz y ahora recargo aciertos y aciertos no pasa nada pero falló y falló y debe ocurrir que se vuelve a tapar al menos esa carta entonces lo que tendríamos que ver es pues para cada una de las cartas crear algo así como una variable privada solo para esa carta que la tape tendríamos que por ejemplo un mensaje entonces me voy a control me voy a enviar un mensaje el mensaje sí no esta palo cata lo entonces cuando se recibe el mensaje lo que se hace es trabajar el disfraz y volver al disfraz anterior entonces una vez más esto es número 1 y es el ide del disfraz anterior el ibex del disfraz recargo voy a el sprite bueno tendría que ahora evitar los disfraces de todo bueno no quería hacer más pequeño pero vale siempre puedo ir al programa y decidir qué nuevo 90 pasos y decir que nuevo 90 pasos entonces ahora un poquito mejor y si muevo 100 pasos casi que mejor y aquí le digo menos 155 y aquí le digo menos 155 bueno ya casi entonces hago clic hago clic es fallado y entonces spam tapamos las cartas al recibir mensaje 1 no a recibir está palo pim pam has fallado y se tapan de hecho se tapan todas menos una vale tenemos que ver qué hacer con esa carta visual de esta paro vale pim pam okay correcto pim pam qué pasó recargo ok correcto pim pam has fallado vale no se está no se está cambiando el paso parece al hacer clic en este objeto si post es igual a 1 cambiar paso por 1 y si no cambiar pasó a menos uno ok correcto tan es que no había esperado lo suficiente ok correcto pim pam entonces en este caso lo que nos quedaría por hacer sería crear una variable nueva llamada puntos en la que se empiece valiendo cero y si en un momento dado al hacer esto ahora decir ok correcto mire si es cierto bueno para empezar cambio puntos por uno y si es cierto que puntos es igual puntos es igual a 4 tú no vas a jugar aquí diremos que has ganado gracias decir has ganado lo comprobamos entonces ejecutamos una carta una carta es correcto una carta una carta es correcto una carta una carta es correcto y una carta una carta y has ganado por lo cual el reto que nos quedaría por conseguir sería hacer que tape solo las dos cartas con las que queremos trabajar finalmente en este caso estoy viendo que en este juego de plataformas pues ciertamente el personaje puede caminar puede saltar en el aire esto no debería ocurrir entonces lo que voy a hacer es lo siguiente cuando el pulso la flecha hacia arriba en primer lugar digo es cierto que estoy en el suelo entonces es cierto que estoy tocando el color verde oscuro solo si es cierto puedo saltar entonces esto lo que va a hacer es que si estoy cayendo pues no puedo saltar solo puedo saltar si estoy en el suelo voy a bajar entonces ahí puedo saltar ahí puedo saltar ahí puedo saltar pero puedo saltar pero allí hay no bueno cuidado porque ahí lo que he hecho es que si el personaje calculado si el personaje está tocando en cualquier parte del personaje pues en ese caso lo que ocurre es que no me deja caer bien no hay ningún problema otra cosa que puedo hacer es que en este juego parece parece parece que hay un color es el color de los bordes entonces yo voy a decir lo siguiente por siempre vamos a ver a personas la flecha derecha es cierto vamos a ver cambiar x por velocidad horizontal vale me pregunto es cierta una condición que yo te voy a decir es cierto que estás tocando este color que te voy a decir es cuidado este y lo mismo por aquí es cierto esto fuera qué estás tocando el color y creo que es pues sí es cierto vamos a darle play el personaje vamos a verlo veremos cómo hay mayor vale ese color parece que ahora sí hay algunos eventos en los que no me deja acceder hay algo que está tocando y algo que reconoce que está tocando pero bueno al final pues me gana cuidado porque ahora sí que necesito saltar más entonces voy a dejar velocidad a 20 para que el gato pueda saltar más pero porque mientras estoy saltando el salto no me deja avanzar y si avanzo no me deja saltar entonces para esto precisamente hay por aquí unos sensores vamos a ver hay unos sensores es para que hay sensores si ya tengo eventos pues porque la flecha derecha verdad así que en flecha hacia arriba yo le digo al tocar flecha hacia arriba puedo decirle es cierto además que estoy tocando la tecla a lo que sea pues entonces hago lo que sea es cierto que no estoy tocando pues en ese caso hago lo otro la idea es que vea veremos vemos cómo podemos especificar vamos a verlo por aquí la persona flecha arriba pues por ejemplo es cierto aquí que estoy tocando si estoy tocando el color no es cierto que estoy tocando la tecla esto a ver con cuidado es cierto que estoy tocando la tecla a derecho pues en ese caso hago un pequeño bucle por siempre y lo pongo aquí y es cierto que estoy tocando la tecla hacia la izquierda pues en ese caso bueno realmente es todo esto explico poco y me falta este bloque con lo cual esto va afuera es todo este bloque todo duplicó adentro entonces ahora recargo y ahora hay y parece que le falta ese patrón y falta ese juego para poder trabajar muy bien esto por aquí esto por aquí esto por aquí vamos a seguir por aquí le digo que el tamaño es al 50% ahí está el rato podemos ir más allá y básicamente pues bueno puedo hacer lo mismo pero al ser el más grande pues hay que tener cuidado porque básicamente pues va colisionando evidentemente con más elementos hay un tipo de juego que no hemos tocado hasta ahora es un juego muy entretenido especialmente para la gente más joven que es el de plataformas el juego de tipo plataformas y que en y que en en scratch es un juego especialmente fácil de realizar bueno pues en este caso lo que voy a hacer es generar un juego de plataformas con scratch para ello me voy a open game arts punto o hereje donde me voy a ir a tu diarte me voy a ir a buscar un platform erp por ejemplo y en platform erp voy a escoger algo como esto luego como una imagen bueno tengo un ojo de plataformas como este que estamos viendo bueno pues vamos allá a ver qué podemos hacer con esto a continuación voy a importar esto desde la carpeta de descargas entonces voy a abrir un archivo me voy a descargas momento momento se cargan los archivos y pero por fecha voy a este estoy subiendo la imagen ahí tenemos la imagen voy a hacerla más grande entonces al presionar e imagen además esta imagen quiero que sea quiero que sea quiero que sea mi sprite no un fondo pero cuidado porque el gato se me queda el rato se me queda por detrás como la gato entonces voy a decirle al sistema que en apariencia ok y al gato y digo siempre siempre siempre al presionar apariencia dónde estás enviar al frente el gato se quede por detrás así que cuando le vea play se va a quedar por delante por cierto que la gato lo quiero al 25% como mucho aunque ya así mejor el escenario lo quiero más grande entonces lo seleccionó fijo el tamaño al 200% vamos a ver pues más todavía 400 por ciento me ha hecho caso o yo diría que no bueno con dejarlo así la pantalla la verdad es que ya me va bastante bien y a continuación lo que quiero es que el gato caiga en el escenario y que pueda empezar a moverse este va a ser un ejercicio bastante divertido entonces pincho por aquí objeto y al seleccionar objeto lo primero que quiero es recuperar aquellos conocimientos que estuvimos viendo acerca de la velocidad me voy a trabajar con la velocidad lo voy a trabajar con la gravedad entonces le digo que por siempre por siempre ejecutó un bloque creó un dato una variable qué es velocidad entonces le digo vamos a verlo y con movimiento apuntar en dirección hacia arriba vale entonces le digo la posición y cambiar y aforo velocidad y velocidad cambia la velocidad por menos 1 vamos a verlo esto debe resultar en un movimiento uniformemente acelerado cojo al gato lo pongo arriba de uplay agua y vemos como cae de hecho ha caído muy rápido bien selecciono el objeto le digo que quiero girarlo solo en esta dirección lo colocó arriba de hecho cuando el juego empieza quiero que el gato esté esta posición así que siempre empieza desde ahí siempre empieza desde ahí voy a este por siempre lo voy a repetir con una espera de 0 punto 0 33 así cae muy rápido en el punto 3 segundos así y cada vez que pase por aquí cada vez que empiece el juego la velocidad empieza siendo cero le digo 033 le digo play y ahí tenemos el personaje bueno el personaje cada vez que cada vez que cae lo que tiene que hacer es colisionar colisionar colisionar con el suelo el suelo qué colores está es la gracia pues yo pregunto yo pregunto sí es cierto algo sí es cierto estoy tocando el color este verde en ese caso bueno es de esperar va a ir siempre en este caso esto sí es cierto en este caso velocidad es igual a cero eso quiere decir que recargo y el personaje si nos fijamos se queda parado en este primer bloque de vegetación porque acabamos de hacer una colisión para un personaje así de sencillo bien sigamos a continuación quiero hacer que el personaje vaya avanzando un poquito a golpes entonces creo otra variable llamada velocidad horizontal así que pulso ok y le digo al personaje que va a esperar a que yo toqué la tecla flecha a la derecha presionar la tecla flecha a la izquierda y quiero otro toque de flecha para flecha hacia arriba para que el personaje salte cuando toque la flecha flecha hacia arriba en este caso le voy a decir que fijó la velocidad la velocidad vertical a por ejemplo 20 vamos a probar mente entonces ejecuto y comprobamos que vamos a verlo fijar velocidad a 20 fijar velocidad a 20 [Música] en este caso le digo y actualizarla y movimiento y cambiar y 10 vamos a darle algo así y comprobamos como el personaje está saltando igual velocidad a 20 es demasiado entonces le digo 10 y así comprobamos cómo conseguimos que el personaje salte ahora lo que quiero es que el personaje se pueda mover de un lado a otro entonces digo lo siguiente al presionar la flecha derecha le digo la velocidad de horizontal se la fijo 10 la velocidad de horizontal será fijo a menos 10 entonces a partir de aquí lo que hago es que entro en un pequeño bucle en un pequeño por siempre que voy a interrumpir algo no sea necesario y le digo en movimiento cambiarla x por 10 y le digo lo siguiente cambiarla x por velocidad horizontal ahora cambiar velocidad horizontal por – 1 y entonces le digo si es cierto qué velocidad horizontal es menor qué velocidad horizontal es menor que cero en ese caso detén este bucle en solo este bucle este programa se llama el objeto que además realizó lo mismo realizó una duplicación cambiar x por velocidad horizontal cambiar x por velocidad horizontal por 1 y si es cierto que la velocidad horizontal es mayor que 0 entonces detener este bucle concreto yo creo que ya quizás 10 quizás 10 es un poco fuerte vamos a probarlo así que toco la flecha y efectivamente podemos comprobar como 10 es un poco fuerte cuidado porque a guau aunque me caigo al agua bueno allí ha decidido que se paraban no sé en qué color ha tocado ahí es cuando el personaje cae yo tenemos entonces el personaje en este caso como vemos tenemos así de fácil verdad un juego de plataformas así de fácil tenemos en la pantalla un juego de plataformas vamos a refinar lo un poco vamos a mejorar algunos comportamientos pero como podemos imaginar hacer un juego de plataformas completo no es mucho más difícil de lo que estoy haciendo ahora

Deja una respuesta

Tu dirección de correo electrónico no será publicada.