Scratch. Sincronizar eventos

Las instrucciones relacionadas con la sincronización permiten organizar a nuestros personajes para que las cosas ocurran en el orden que nosotros deseamos. 

Primeros pasos 
La forma más sencilla de sincronizar el comportamiento de tus personajes es utilizando un bloque “esperar”, que hace que el personaje espere el número de segundos que escribamos como parámetro del bloque. Veamos un ejemplo de cómo puede utilizarse este bloque para sincronizar a dos personajes: 

En este caso se han utilizado los bloques “esperar” para sincronizar a estos dos personajes para que mantengan una conversación, de forma que mientras uno habla, el otro espera, y viceversa. Fíjate en que el número de segundos que cada personaje espera, son iguales al número de segundos que el otro personaje habla, de manera que nunca hablan al mismo tiempo. 

Algo más avanzado 
La sincronización mediante bloques “esperar” es muy sencilla cuando los programas son pequeños y tenemos pocos personajes, pero cuando son más grandes, o cuando tenemos varios personajes, o cuando las condiciones para generar una reacción no pueden ser anticipadas previamente, es más eficiente utilizar otros modos de sincronización como los mensajes. Veamos un ejemplo: 



¿Cómo funciona estos bloques de sincronización? Cuando se produce una situación en un personaje que queremos que provoque una reacción en otro personaje, podemos hacer uso del envío de mensajes. En el ejemplo, cuando el usuario toca con el ratón toca al gato, se envía el mensaje “Pillado”, que será enviado a todos los personajes del proyecto. Así, cuando la mariposa recibe el mensaje “Pillado”, se ejecutan las instrucciones incluidas bajo el bloque “al recibir Pillado”. Por tanto, cuando el usuario toque con el ratón al gato, la mariposa dirá: “Has pillado a mi compañero. Ahora tienes que pillarme a mí”. 

Nivel experto 
Además del envío de mensajes, es posible sincronizar personajes para que las cosas ocurran en el orden que nosotros deseamos utilizando otro tipo de bloques, como “esperar hasta que” o “cuando el fondo cambie a...”. 

En el primer ejemplo, cuando la ejecución del programa llegue a ese punto se detendrá hasta que se cumpla la condición, en este caso hasta que vidas sea igual a 0. Cuando vidas valga 0, entonces continuará la ejecución del resto de bloques, en este caso “decir Game Over” y “detener todos”, lo que finalizará la ejecución del proyecto. 

En el segundo ejemplo, en el momento en el que el escenario cambie al fondo con el nombre “Primavera”, el personaje ejecutará los bloques colocados a continuación de la instrucción “cuando el fondo cambia a Primavera”, es decir, que se mostrará y dirá “La primavera ha llegado

Información obtenida de:
https://educacionadistancia.juntadeandalucia.es


Si aún tienes dudas puedes visualizar los siguientes vídeos. No utilizan la versión 3.0 de Scrtach por lo que verás una interfaz diferente pero el funcionamiento es el mismo.



Como puedes observar, utilizar la instrucción "esperar tiempo" no es la mejor solución para coordinar acciones de objetos.


Este segundo vídeo te indica lo que debes hacer para programar de manera más fiable mediante el envío y recepción de mensajes. La solución óptima para sincronizar las acciones de diferentes objetos.



PRÁCTICA 11: Sincronización
- Abre tu navegador y accede a Scratch 
- Ingresa en Scratch con tu nombre de usuario 
- Crea un Proyecto nuevo haciendo click en "Crear"
- Renombra el proyecto. Llámalo "Práctica 11. Sincronización" y haz click en Archivo ... Guardar
- Queremos crear un programa formado por dos objetos (animales o personas) que hablen entre ellos sobre alguna de tus asignaturas. Para ello, elimina el objeto gato, inserta tus 2 personajes e inserta un fondo. 
- Primero se deben saludar
- Uno de ellos preguntará al otro cualquier cosa de interés
- El segundo personaje debe responder.
- La secuencia de preguntas y respuestas debe sincronizarse adecuadamente y NO por tiempo
- Cuando hayas terminado guarda los cambios en Archivo ... Guardar 
- Llama a tu profesor para evaluar esta práctica.


Finalmente veamos cómo la instrucción "esperar hasta que" puede servirnos también para coordinar las acciones de varios objetos.



PRÁCTICA 12: Esperar hasta un evento 
- Abre tu navegador y accede a Scratch 
 - Ingresa en Scratch con tu nombre de usuario 
- Accede a tu carpeta personal y abre la "Práctica 11. Sincronización"
- Haz click en Archivo ... guardar copia y renómbrala con el nombre "Práctica 12. Esperar hasta un evento"
- Modifica el programa de tal manera que:
  • Uno de los personajes diga "Si quieres ver de nuevo nuestra conversación pulsa la tecla T"
  • Inserta las instrucciones de programa necesarias para que tu programa se ejecute de nuevo en el caso de que alguien pulse la tecla T. Una de esas instrucciones será "esperar hasta que se pulse la tecla T"
- Cuando hayas terminado guarda los cambios en Archivo ... Guardar 
 - Llama a tu profesor para evaluar esta práctica.