 Hemos cargado este otro programa, también enlazado desde la documentación del bloque, en el que hacemos uso de un par de instrucciones que nos sirven para enviar y recibir mensajes. En particular, la instrucción en la salapa de eventos, enviar, nos sirve para enviar un mensaje. El mensaje es una forma de comunicarnos con el resto de objetos y fondos que haya en nuestro proyecto. Puede enviar un mensaje, un objeto o el escenario. El mensaje que puede enviar es alguno de los que están definidos o bien un nuevo mensaje que nos podemos inventar. El texto del mensaje es importante o conveniente que sea algo significativo, dependiendo de nuestro proyecto, el tema de nuestro proyecto, puede ser en realidad cualquier texto. El que envía el mensaje decimos entonces que puede utilizar esta instrucción y para recibir un mensaje podemos utilizar este sombrero. Recordamos que las instrucciones de tipo sombrero, como la de al presionar la bandera verde, sirven para que solamente cuando se produzca la acción que viene aquí descrita, en este caso al presionarse la bandera verde, en este otro caso al recibirse un mensaje, se ejecuten las instrucciones que haya continuación. Nos deshacemos de estas dos instrucciones y nos dedicamos ahora a estudiar el código de la chica. Vemos que tiene tres scripts o tres programas la chica. Primero de ellos es el que se ejecuta al presionar la bandera verde. Simplemente pone el primer disfraz que es lo que hacía el programa anterior. Posteriormente la chica ya aquí no hace nada. Si tiene otro script que se ejecutará cuando reciba este mensaje o la chico y este otro script que se ejecutará cuando reciba el mensaje vacaciones chico. Esto quiere decir que el programa de la chica, al arrancar simplemente, se cambia de un disfraz y no hará nada más hasta recibir este mensaje o recibir este otro. Vamos a ver el código del chico. El chico tiene estos tres scripts o estos tres programas. Vemos que también es la misma estructura. También tiene un programa que empieza con el presionar bandera verde en el que cambia el disfraz y dice hola durante dos segundos. Y cuando termina envía el mensaje o la chico. El envío de un mensaje es recibido por todos los objetos y por el escenario de forma que la chica en particular, que es el otro objeto que nos interesa en este proyecto va a ser uno de los objetos que reciba el mensaje o la chico. Por lo tanto la acción comienza aquí. El chico dice su primer mensaje, dice su primer texto hola tras cambiar el disfraz y luego envía este mensaje. Es importante no liernos con la anotación. Cuando el chico dice hola, a esto no le vamos a llamar mensaje para no confundirnos con el envío de mensajes. Hacemos que con esta instrucción va a salir una burbuja con el texto hola durante dos segundos. Y después el chico va a enviar el mensaje hola chico. Este envío de mensaje no provoca ningún cambio en la apariencia del escenario. Lo único que provoca es que se ejecute la instrucción al recibir hola chico en el código de la chica. Vamos a verlo. En la chica tenemos al recibir hola chico, pues este es el código que se va a ejecutar cuando en el código del chico se envíe este mensaje. Tras enviar entonces el mensaje el chico, lo siguiente que va a ocurrir, vemos que aquí ya no hay nada más que hacer en el caso del chico y que las otras instrucciones todas están debajo de un al recibir hola chica y el recibir vacaciones chicas. Luego el chico no hace nada más hasta que no recibe uno de estos dos mensajes. Luego la acción tras enviar hola chico pasa a la chica, que al tener este sombrero aquí y recibir el mensaje hola chico se pondrá a decir hola durante dos segundos y después de estos dos segundos enviar al mensaje hola chica. Tenemos algún objeto que tenga una instrucción al recibir hola chica? Si, si nos vamos al chico vemos que tiene este programa que comienza con el sombrero al recibir hola chica y entonces al recibir el mensaje de la chica dirá esto durante dos segundos y finalmente enviará vacaciones chico. ¿Hay algún programa en nuestro proyecto que tenga un sombrero al recibir vacaciones chico? Nos vamos a la chica y vemos que sí. Este último programa de la chica tras recibir el mensaje vacaciones chico cambia el disfraz dice el último texto durante dos segundos vuelve a cambiar el disfraz y para terminar envía el mensaje vacaciones chica. En el chico tenemos este último sombrero que comienza con al recibir vacaciones chica cambia el disfraz y por último dice genial y así concluye. La ejecución de este programa produce los mismos efectos que la ejecución del programa anterior pero en este caso la sincronización de las acciones entre los diferentes programas de la chica y el chico se produce mediante el envío y la recepción de mensajes. Ahora vemos que si la chica como hacíamos antes cambia su programa y tarda más segundos podemos incluso algo más exagerado de cuatro segundos en decir este mensaje todo sigue funcionando porque el chico no se va a adelantar hasta no haber recibido el mensaje o la chica para decir su texto y esto no va a ocurrir hasta que no termine durante cuatro segundos de mostrarse el mensaje o la en la pantalla. Vamos a ejecutarlo. Vemos que el diálogo se mantiene habla el chico habla la chica durante cuatro segundos y hasta que no termina no habla el chico y ahora manda su mensaje y por fin habla la chica y esta manda su último mensaje y por fin habla el chico. Por lo tanto sincronizar los programas utilizando la instrucción de enviar mensaje y la instrucción de al recibir mensaje hace que podamos de manera correcta coordinar las acciones de varios objetos. Para concluir vamos a ver como definimos un nuevo mensaje y vamos a hacer que el chico tras decir el último mensaje genial el último texto genial envíe un nuevo mensaje a la chica para que sea esta la que tenga la última palabra. Para eso hacemos que envíe un nuevo mensaje en lugar de este o la chica creamos uno nuevo pinchamos aquí lo definimos habla tu finalmente. Ahora el chico va a enviar el mensaje habla tu finalmente si nos vamos al código de la chica podemos crear un nuevo sombrero al recibir vemos que entre los mensajes que podemos recibir está ya aquí el que acaba de definir el chico habla tu finalmente y en este caso vamos a hacer que la chica diga un último mensaje vamos a copiar este por ejemplo no queremos estas instrucciones simplemente queremos que diga pues gracias este es el final. Así vemos como hemos definido un nuevo mensaje en el chico introducir una nueva instrucción enviar mensaje hemos escrito el nombre del texto del mensaje o el nombre del mensaje que es habla tu finalmente y aquí en la chica hemos puesto el sombrero al recibir habla tu finalmente para que sea ella la que tenga el último palabra ejecutamos el código y vemos que efectivamente tras realizar el diálogo de siempre al acabar es el chico el que manda el último mensaje a la chica el de habla tu finalmente y la chica dice la última palabra por último respecto al envío y recepción de mensajes hay que comentar que esta otra instrucción que tenemos aquí nos permite enviar un mensaje y esperar hasta que todos los receptores de este mensaje lo hayan recibido hemos dicho antes que cuando enviamos un mensaje el mensaje se envía a todos los que puedan estar interesados en recibirlo de forma que múltiples objetos pueden tener sombreros del tipo al recibir cierto tipo de mensaje luego el mensaje lo envía uno y lo pueden recibir muchos igual que cuando damos una voz en una clase o en casa y todos nos oyen cuando enviamos un mensaje muchos pueden querer recibir ese mensaje esa instrucción nos sirve para que cuando enviemos un mensaje esperemos y nos sigamos después de enviar el mensaje ejecutando nada hasta no estar seguros de que todos los posibles receptores del mensaje lo hayan recibido y hayan realizado cierta acción la que ellos hayan definido debajo de su correspondiente sombrero al recibir podemos ver cuáles son los receptores y los emisores de un mensaje si pinchamos encima de su nombre con el botón derecho y pulsamos en mostrar emisores vemos que se nos indica aquí quiénes son los emisores y si seleccionamos mostrar receptores quiénes son los receptores