Haga que sus animaciones de Scratch sean más reactivas con los eventos

Lo que vas a crear

En el tutorial anterior, continuaste trabajando en un proyecto para hacer que un cangrejo persiga a un gato por la pantalla, agregando un límite de tiempo y manteniendo la puntuación..

En esta parte continuaremos trabajando en ese proyecto. Agregaremos un evento de difusión y lo utilizaremos para activar scripts para otros sprites. Luego, cuando termine el juego, ocultaremos la mayoría de los sprites y mostraremos la puntuación final..

Lo que necesitarás

Para completar este tutorial, necesitarás:

  • una cuenta gratis con Scratch
  • un navegador web con acceso a Scratch (recomiendo usar un navegador moderno como Chrome, Firefox, Safari u Opera para la mejor experiencia)

Empezando

Vamos a trabajar con el proyecto creado en la parte anterior de esta serie. Usaremos los recursos y scripts que hemos creado hasta ahora y agregaremos más.

Dependiendo de si trabajó junto con ese tutorial, hay dos formas de comenzar con este tutorial:

  • Abra el proyecto que creó para el último tutorial y haga un duplicado de eso..
  • Remezcla el proyecto que creé para soportar el último tutorial..

Alternativamente, puedes seguir trabajando en el mismo proyecto que ya creaste. Así es como haces cada uno de estos (solo necesitarás hacer uno).

Duplicando tu propio proyecto

Abre Scratch y ve al proyecto que quieres duplicar. Asegúrese de que ha hecho clic en el Ver adentro Botón para que puedas ver el funcionamiento del proyecto..

En la barra de herramientas, haga clic en Archivo> Guardar como una copia:

Scratch abrirá tu nueva copia. Renombralo y empieza a trabajar en ello.

Remezclando mi proyecto

Inicie sesión en Scratch y vaya a la página de mi proyecto sobre datos y variables.

Haga clic en el Ver adentro Botón para ver el proyecto:

Ahora haga clic en el Remezclar botón. Scratch guardará un duplicado de mi proyecto como un nuevo proyecto en su cuenta. Renombralo y eres bueno para ir!

Creación de un evento de difusión para enviar mensajes

En esta parte de la serie, añadirás un emisión Mensaje a su proyecto para comunicarse internamente dentro de su proyecto. Puede crear una difusión en una secuencia de comandos cuando esa secuencia de comandos alcanza un cierto punto, o se cumple una condición relacionada con un sprite, y luego hacer que cualquiera de los otros sprites (o el escenario) reaccione a la difusión de ese mensaje. Esto vincula a tus sprites y te da más alcance cuando se trata de agregar interacciones de usuario..

Recordarás que anteriormente agregamos un sprite con un texto (que dice '¡Ouch!') Que dibujamos como un disfraz para ese sprite. En el momento en que el sprite está sentado inmóvil en el escenario y no hace nada. Ahora usaremos una transmisión para que haga algo..

Pero primero vamos a crear la transmisión..

Haga clic en el gato sprite y edite el script que ya ha creado para él.

Abre el Eventos bloques y arrastre el transmisión de mensajes 1 bloque en el script, inmediatamente debajo de la cambiar puntaje por 1 bloquear. Haga clic en la lista desplegable para mensaje1 y haga clic en nuevo mensaje… . Escriba algún texto que pueda usar para definir su transmisión. Este texto no será visto por el usuario, pero lo usará en otra parte de su proyecto, por lo que tiene sentido llamarlo algo significativo. Estoy llamando al mio atrapado.

Así es como se ve el guión del gato ahora:

Ahora podemos usar esa transmisión para activar scripts para otros sprites..

Uso de un evento de difusión para iniciar un script

Hasta ahora hemos comenzado todos nuestros guiones con el cuando se hace clic en la bandera verde bloque, lo que significa que el script se ejecuta automáticamente cuando se inicia el proyecto. A veces no desea que eso suceda: desea que se active un script después de que el proyecto haya comenzado. Hay varias formas de hacerlo: puede activar un guión cuando se presiona un sprite o una tecla, o cuando cambia una variable como el volumen. El método que usaremos aquí es iniciar un script cuando el sprite recibe un mensaje de difusión..

Haga clic en el sprite de texto que creó anteriormente (Sprite2). Comience por darle un nombre mejor (haciendo clic en el yo icono en su parte superior izquierda y editando el nombre) -Estoy llamando al mío Ay.

Queremos que este sprite sea invisible durante la mayor parte del tiempo y solo aparezca cuando el cangrejo atrapa al gato. Así que crearemos dos scripts: el primero para ocultar el sprite y el segundo para hacer que aparezca.

Creación de un script para hacer desaparecer el Sprite

Crea este script para el sprite:

  • cuando se hace clic en la bandera verde
  • esconder

Encontrarás el esconder bloque en el Miradas bloques Esto oculta el sprite: ahora, cuando inicies el proyecto, desaparecerá..

Creando un Script para hacer que el Sprite aparezca de nuevo

Ahora crea un segundo script para el sprite Ouch:

  • cuando recibo atrapado
  • ir al gato
  • espectáculo
  • espera 0.5 segundos
  • esconder

Encontrarás el primer sprite en el Eventos bloques, el ir bloque en el Movimiento bloques, el Espere bloque en el Controlar sección y la espectáculo y esconder bloques en Miradas.

Uso de eventos con fondos

A medida que sus proyectos se vuelvan más largos y complejos, es posible que desee darle al usuario la sensación de progresar en un juego o animación cambiando el fondo. Aquí lo haremos cuando se acabe el tiempo y el juego termine..

Para hacer eso necesitamos:

  • añadir una emisión cuando se agote el temporizador
  • Crea un nuevo telón de fondo para mostrar al final del juego.
  • cambia el telón de fondo cuando se agote el temporizador
  • Oculta los sprites existentes cuando el juego termina.
  • decirle al usuario su puntuación cuando el juego termina

Usaremos el emisión Evento bloques y también el cuando el telón de fondo cambia a bloque de evento. Empecemos por crear esa transmisión..

Creando una transmisión

Selecciona el Escenario y agrega un emisión bloque hasta el final de su guión, sustituyendo el para todo bloquear. Estoy llamando a esta transmisión juego terminado.

Creando un nuevo fondo

Ahora cree un fondo adicional para el escenario de la misma forma que creó los fondos anteriormente en esta serie. Selecciona el Escenario, haga clic en el Telones de fondo pestaña e importar, dibujar o seleccionar un fondo de la biblioteca. Estoy seleccionando el Círculos telón de fondo de la biblioteca.

Ahora aparecerá el nuevo telón de fondo y desaparecerá el original, ¡no se asuste! Haremos que aparezca el original cuando se inicie el proyecto y el nuevo cuando el juego termine..

Cambiando el telón de fondo en el momento adecuado

A estas alturas, es probable que pueda encontrar la forma de que aparezca el primer telón de fondo cuando se inicie el proyecto. Simplemente arrastre el cambiar el telón de fondo a bloque de la Miradas bloques a la secuencia de comandos para el escenario, justo debajo de la cuando se hace clic en la bandera verde Bloque y encima del poner el puntaje a 0 bloquear. En el cuadro desplegable de ese bloque, seleccione playa malibu.

Ahora, cuando ejecute el proyecto, el telón de fondo volverá a aquel con el que está familiarizado:

Para cambiar el fondo cuando finalice el juego, cree un nuevo script para el escenario:

  • cuando recibo atrapado
  • cambiar el telón de fondo a círculos

Tu escenario ahora tendrá dos guiones:

Ahora, cuando ejecute su proyecto, el fondo cambiará cuando el juego termine, pero el juego realmente no terminará. Vamos a arreglar eso.

Ocultar los Sprites cuando finaliza el juego (y mostrarlos cuando comienza)

Cuando el juego termine, queremos que los cangrejos, estrellas de mar y ouch sprites desaparezcan. Por lo tanto, necesitamos crear un guión idéntico para cada uno de estos spites, que será activado por la transmisión. La buena noticia es que puede crear el script una vez y luego copiarlo en cada uno de los sprites..

Comience con el sprite de cangrejo. Crea este script para ello:

  • cuando recibo el juego terminado
  • esconder

Ahora copia ese script a cada uno de los sprites ouch y starfish arrastrando el script desde el Guiones panel para el sprite de cangrejo en cada uno de los sprites debajo del escenario principal.

Ahora, cuando juegues, tus sprites desaparecerán cuando el juego termine, pero no volverán a aparecer cuando juegues de nuevo. Así que necesitas hacerlos aparecer cuando el proyecto comience..

Para cada uno de los sprites de cangrejo y estrella de mar, agregue un espectáculo Bloquear el script que comienza con cuando se hace clic en la bandera verde, Justo al principio. No hagas esto por el ouch sprite ya que solo aparece cuando el cangrejo y el gato se tocan. El sprite de cangrejo, por ejemplo, ahora se verá así:

Ahora, cuando juegues, los sprites aparecerán al principio y desaparecerán al final. Lo único que no está funcionando ahora es el gato sprite, que todavía se está moviendo. No queremos que haga eso, por lo que editaremos el script existente para el gato.

El gato actualmente tiene un Siempre Bloque que controla su movimiento y la puntuación. Reemplace eso Siempre bloque con un repetir hasta bloque, asegurándose de que todos los bloques estén dentro del repetir hasta bloque que estaban dentro de la Siempre bloquear. Puede que le resulte más fácil arrastrar el Siempre bloque lejos de la secuencia de comandos en el Guiones panel, arrastre el repetir hasta bloque en posición, y luego arrastre los bloques desde dentro del Siempre bloque dentro del repetir hasta bloquear. A continuación, elimine el Siempre bloquear.

En el espacio en el repetir hasta bloque, no podemos usar un cuando recibo bloque, ya que están diseñados para iniciar secuencias de comandos. En su lugar utilizaremos un operador. Arrastrar el = bloque en ese espacio, arrastre el Minutero variable al primer espacio, y tipo 0 en el segundo espacio así se lee el bloque. repita hasta que el temporizador = 0.

Ahora ejecuta el juego y cuando el tiempo se detenga, el gato seguirá siendo visible pero estará quieto.

Decirle al usuario su puntuación cuando el juego termina

Hagamos que el gato le diga al usuario su puntuación. Cree un nuevo script para el gato sprite de la siguiente manera:

  • cuando el telón de fondo cambia a círculos
  • decir unirse Has marcado Puntuación

Crear ese segundo bloque es un poco complicado. Tendrás que arrastrar el di hola! bloque al script, luego arrastre el unirse bloque de Los operadores al espacio donde dice Hola! Luego escriba 'Usted anotó' en el primer espacio del bloque de unión y arrastre el Puntuación Variable al segundo espacio. Asegúrate de agregar un espacio al final de tu texto. El guión se verá así:

Ahora, cuando corras el juego, el gato aparecerá solo al final y te dirá tu puntuación..

Resumen

Agregar eventos a sus proyectos le permite hacer que las cosas sucedan a medida que el proyecto avanza, en respuesta a las entradas del usuario, los scripts que llegan a cierto punto o el cambio de valor de una variable. En este tutorial, aprendió a usar eventos para cambiar el fondo cuando el temporizador cuenta con un valor cero y muestra la puntuación del usuario..

Si te apetece un desafío, ¿por qué no agregar algunos operadores al sprite que creaste que le dice al usuario su puntuación? Tal vez podrías usar un Si bloque para detectar el valor de la Puntuación Valioso y haz que el gato diga '¡Bien hecho!' si el usuario obtiene más de una cierta cantidad, o "¡Mejor suerte la próxima vez!" si tienen una puntuación baja.

En la siguiente parte de esta serie, pasaremos a la creación de efectos animados utilizando fondos. Haremos uso de los fondos duplicados que creamos justo al principio de la serie para crear un zoom en efecto..