 Ya sabemos que diferentes objetos pueden realizar acciones a la vez o también pueden denominarse concurrentemente. Cada objeto puede tener uno o más programas o scripts y éstos se están ejecutando a la vez que los scripts de otros objetos de nuestro proyecto. Por lo tanto, puede haber situaciones en las que nos interese que las acciones de diferentes objetos se coordinen, se sincronicen. Por ejemplo, este objeto chica y este objeto chico mantendrán una especie de diálogo. Vamos a ver cómo, utilizando las instrucciones decir, podemos hacer que salgan bocadillos tipo cómic en los que cada uno de los objetos va a ir diciendo algo y el otro le responde. Aprenderemos en el segundo vídeo que hay un mecanismo muy potente en Scratch que es el envío y recepción de mensaje que permite realizar esta coordinación entre objetos de manera sencilla. Sin embargo, antes de ver este mecanismo, veremos otro tipo de instrucciones menos apropiadas. De esta forma, entenderemos la motivación para realizar el intercambio de mensajes en Scratch. Vamos a ver en primer lugar cómo se comporta este programa. El chico comienza diciendo hola, después saluda a la chica. Entonces, el chico responde con este mensaje y la chica contesta con este otro. Finalmente, el chico dice el último mensaje. Vemos cómo, aparte de decir algunas cosas como los bocadillos, también hemos cambiado en algún momento el disfraz de los objetos. Vamos a mirar el código. Nos fijamos en el código de la chica y vemos que, tras presionar la bandera verde, la chica cambia inicialmente a un primer disfraz. Con esta instrucción, cambiará de disfraz seleccionando de manera determinista el disfraz que queremos que muestre. Podemos ver los disfrazes de la chica, cada uno con un nombre propio, Girl1, Girl1B. Con la instrucción, cambiar disfraz, podemos elegir cuál sale. Luego, tenemos la instrucción, esperar un número de segundos. Nos fijamos en el color de la paleta de control. Hacemos que el programa separe durante, en este caso, dos segundos. Con esto, estamos dando pie a que durante ese tiempo, el otro objeto pueda estar haciendo una acción, por ejemplo, decir algo. Vamos a ver el código del chico, que es lo que hace durante los dos primeros segundos de este objeto. Después de cambiar de disfraz, también dice hola durante dos segundos. Esta instrucción, hola, organizada antes de esperar, crea el efecto de saludar durante dos segundos. Volvemos al código de la chica y vemos que este objeto saluda después de esperar dos segundos iniciales, contestando al chico y ella. Vamos a ejecutar el código. El primero durante dos segundos dice hola, mientras la chica espera y después durante dos segundos dice hola. Después, la chica espera dos segundos y el chico en ese tiempo dice este otro mensaje. Vamos a comprobarlo. Vemos que la chica, tras esos dos segundos, cambia el disfraz y dice su último mensaje, que dura dos segundos también, tras el cual cambia otra vez de disfraz. Durante estos dos segundos, en los que la chica dice su primer mensaje, el chico espera hasta que termine. Cuando la chica ha terminado de hablar, finalmente, el chico cambia de disfraz y dice su último mensaje. Genial. Y así concluye el programa. Vamos a repasar la ejecución. Sería conveniente que cargues este proyecto. Lo tienes enlazado en la documentación de este bloque y compruebes cómo se va intercalando la ejecución de este programa con la ejecución del programa de la chica, como estas esperas dan lugar a que el otro objeto pueda hablar o ejecutar su instrucción decir. Ahora si este programa con estas esperas no es una buena idea. Si cambiamos de opinión y ahora queremos que el diálogo de uno de los dos dure a un tiempo mayor, tendremos que cambiar no solo el código del objeto en sí, sino el código del otro objeto también para que sigan sincronizados y el diálogo tenga sentido. Por ejemplo, si queremos que la chica aquí esté durante tres segundos diciendo algo, veremos que por cambiar este valor el programa ya no da un resultado adecuado. Vamos a ejecutarlo. ¿Veis cómo se ha desincronizado el programa por el retardo del primer mensaje?