Rendez vos animations Scratch plus réactives avec les événements

Ce que vous allez créer

Dans le tutoriel précédent, vous avez continué à travailler sur un projet visant à obliger un crabe à chasser un chat autour de l'écran, en ajoutant une limite de temps et en marquant le score..

Dans cette partie, nous allons continuer à travailler sur ce projet. Nous allons ajouter un événement broadcast et l'utiliser pour déclencher des scripts pour d'autres sprites. Ensuite, nous cacherons la plupart des sprites lorsque le jeu sera terminé et afficherons le score final..

Ce dont vous aurez besoin

Pour compléter ce tutoriel, vous aurez besoin de:

  • un compte gratuit avec Scratch
  • un navigateur Web avec accès à Scratch (je recommande d'utiliser un navigateur moderne comme Chrome, Firefox, Safari ou Opera pour une expérience optimale)

Commencer

Nous allons travailler avec le projet créé dans la partie précédente de cette série. Nous utiliserons les ressources et les scripts que nous avons créés jusqu'à présent et en ajouterons d'autres..

Selon que vous avez ou non travaillé avec ce didacticiel, il existe deux manières de démarrer avec ce didacticiel:

  • Ouvrez le projet que vous avez créé pour le dernier tutoriel et faites-en une copie..
  • Remixez le projet que j'ai créé pour prendre en charge le dernier tutoriel..

Sinon, vous pouvez simplement continuer à travailler dans le même projet que vous avez déjà créé. Voici comment vous faites chacune de ces tâches (vous n’en aurez besoin que d’une seule).

Dupliquer votre propre projet

Ouvrez Scratch et accédez au projet que vous souhaitez dupliquer. Assurez-vous que vous avez cliqué sur le Voir à l'intérieur bouton pour que vous puissiez voir le fonctionnement du projet.

Dans la barre d'outils, cliquez sur Fichier> Enregistrer en tant que copie:

Scratch ouvrira votre nouvelle copie. Renommez-le et commencez à y travailler.

Remixer mon projet

Connectez-vous à Scratch et accédez à la page de mon projet sur les données et les variables..

Clique le Voir à l'intérieur bouton pour voir le projet:

Maintenant, cliquez sur le Remix bouton. Scratch enregistrera un duplicata de mon projet en tant que nouveau projet dans votre compte. Renommez-le et vous êtes prêt à partir!

Création d'un événement de diffusion pour envoyer des messages

Dans cette partie de la série, vous allez ajouter un diffuser message à votre projet pour communiquer en interne au sein de votre projet. Vous pouvez créer une diffusion dans un script lorsque ce script atteint un certain point ou si une condition relative à une image-objet est remplie, puis faire en sorte que l'une des autres images-objets (ou l'étape) réagisse à la diffusion de ce message. Cela lie vos sprites et vous donne plus de marge pour ajouter des interactions utilisateur.

Vous vous souviendrez que plus tôt nous avions ajouté un sprite avec un texte dedans (disant 'Ouch !!') que nous avions dessiné en tant que costume pour ce sprite. Pour le moment, cet esprit est assis immobile sur la scène et ne fait rien. Maintenant, nous allons utiliser une émission pour la faire faire quelque chose.

Mais d'abord, créons la diffusion.

Cliquez sur le sprite du chat et éditez le script que vous avez déjà créé pour cela.

Ouvrez le Événements blocs et faites glisser le message diffusé1 bloquer dans le script, immédiatement en dessous du changer Score par 1 bloc. Cliquez sur la liste déroulante pour message1 et cliquez sur nouveau message… . Tapez du texte que vous pouvez utiliser pour définir votre diffusion. Ce texte ne sera pas vu par l'utilisateur, mais vous l'utiliserez ailleurs dans votre projet. Il est donc logique de l'appeler quelque chose de significatif. J'appelle le mien pris.

Voici à quoi ressemble le script du chat:

Maintenant, nous pouvons utiliser cette diffusion pour déclencher des scripts pour d'autres sprites.

Utiliser un événement de diffusion pour démarrer un script

Jusqu'à présent, nous avons commencé tous nos scripts avec le quand le drapeau vert a cliqué block, ce qui signifie que le script est automatiquement exécuté au démarrage du projet. Parfois, vous ne voulez pas que cela se produise: vous voulez qu'un script soit déclenché après le démarrage du projet. Il existe plusieurs façons de procéder: vous pouvez déclencher un script lorsque vous appuyez sur une image-objet ou sur une touche, ou lorsqu'une variable, telle que le volume, change. La méthode que nous allons utiliser ici démarre un script lorsque l'image-objet reçoit un message de diffusion..

Cliquez sur l'image-objet que vous avez créée précédemment (Sprite2). Commencez par lui donner un meilleur nom (en cliquant sur le bouton je icône en haut à gauche et modification du nom) -J'appelle le mien Aie.

Nous voulons que ce sprite soit invisible la plupart du temps et n'apparaisse que lorsque le crabe attrape le chat. Nous allons donc créer deux scripts: le premier pour cacher le sprite et le second pour le faire apparaître.

Création d'un script pour faire disparaître le sprite

Créez ce script pour le sprite:

  • quand le drapeau vert a cliqué
  • cacher

Vous trouverez le cacher bloquer dans le Regards des blocs. Cela cache le sprite: maintenant, quand vous démarrez le projet, il disparaîtra.

Création d'un script pour que le sprite réapparaisse

Maintenant, créez un second script pour le sprite Ouch:

  • quand je reçois attrapé
  • aller au chat
  • spectacle
  • attendez 0.5 secondes
  • cacher

Vous trouverez le premier sprite dans le Événements des blocs, les aller à bloquer dans le Mouvement des blocs, les attendre bloquer dans le Contrôle section et la spectacle et cacher bloque Regards.

Utilisation d'événements avec des arrière-plans

Au fur et à mesure que vos projets deviennent plus longs et complexes, vous souhaiterez peut-être donner à l'utilisateur le sentiment de progresser dans un jeu ou une animation en modifiant l'arrière-plan. Ici, nous ferons cela lorsque le temps imparti et le jeu seront terminés.

Pour ce faire, nous devons:

  • ajouter une émission lorsque le temps imparti est écoulé
  • créer un nouveau fond à afficher à la fin du jeu
  • changer la toile de fond quand le temps imparti est écoulé
  • cacher les sprites existants à la fin du jeu
  • dire à l'utilisateur son score à la fin du jeu

Nous allons utiliser le diffuser un événement des blocs et aussi le quand toile de fond passe à bloc d'événement. Commençons par créer cette émission.

Créer une diffusion

Sélectionnez le Étape et ajouter un diffuser bloquer jusqu'à la fin de son script, en remplaçant le arrête tout bloc. J'appelle cette émission jeu terminé.

Créer un nouveau fond

Créez maintenant un arrière-plan supplémentaire pour la scène de la même manière que vous avez créé des arrière-plans plus tôt dans cette série. Sélectionnez le Étape, clique sur le Les décors onglet et importer, dessiner ou sélectionner un fond de la bibliothèque. Je sélectionne le Cercles toile de fond de la bibliothèque.

Le nouveau fond va maintenant apparaître et votre original disparaîtra - pas de panique! Nous ferons en sorte que l'original apparaisse au lancement du projet et que le nouveau apparaisse à la fin du jeu..

Changer de toile de fond au bon moment

À présent, vous pouvez probablement déterminer comment obtenir le premier fond à apparaître lors du lancement du projet. Il suffit de faire glisser le passer de toile de fond à bloc de la Regards blocs au script pour la scène, juste en dessous du quand le drapeau vert a cliqué bloquer et au-dessus de la mettre Score à 0 bloc. Dans la liste déroulante de ce bloc, sélectionnez Malibu Beach.

Maintenant, lorsque vous exécutez le projet, le fond reviendra à celui que vous connaissez bien:

Pour changer de fond à la fin du jeu, créez un nouveau script pour la scène:

  • quand je reçois attrapé
  • passer de la toile de fond aux cercles

Votre scène aura maintenant deux scripts:

Maintenant, lorsque vous exécutez votre projet, le fond changera à la fin du jeu, mais le jeu ne se terminera pas réellement. Corrigeons ça.

Cacher les sprites quand le jeu se termine (et les montrer quand il commence)

Lorsque le jeu se termine, nous voulons que les images-objets crabe, étoile de mer et aïe disparaissent. Nous devons donc créer un script identique pour chacun de ces sites, qui sera déclenché par la diffusion. La bonne nouvelle est que vous pouvez créer le script une fois, puis le copier sur chacun des sprites..

Commencez avec le sprite de crabe. Créez ce script pour cela:

  • quand je reçois game over
  • cacher

Maintenant, copiez ce script dans chacun des sprites d’Ouch et d’Etoile de mer en le faisant glisser Les scripts volet de l’image-objet crabe sur chacune des images-objets situées sous la scène principale.

Désormais, lorsque vous jouez au jeu, vos images-objets disparaissent à la fin du jeu, mais ne réapparaissent pas lorsque vous jouez à nouveau. Donc, vous devez les faire apparaître lorsque le projet commence.

Pour chacun des sprites de crabe et d’étoile de mer, ajoutez un spectacle bloquer le script qui commence par quand le drapeau vert a cliqué, juste au début. Ne faites pas cela pour le sprite ouch car cela n'apparaît que lorsque le crabe et le chat se touchent. Le sprite de crabe par exemple va maintenant ressembler à ceci:

Maintenant, lorsque vous jouez au jeu, les images-objets apparaissent au début et disparaissent à la fin. La seule chose qui ne fonctionne pas maintenant est le sprite de chat, qui bouge toujours. Nous ne voulons pas que cela se produise, nous allons donc éditer le script existant pour le chat.

Le chat a actuellement un pour toujours bloc qui contrôle son mouvement et le score. Remplacer que pour toujours bloquer avec un Répète jusqu'à bloquer, en s'assurant que tous les mêmes blocs sont toujours à l'intérieur du Répète jusqu'à bloc qui était à l'intérieur du pour toujours bloc. Vous trouverez peut-être plus facile de faire glisser le pour toujours bloquer le script sur le Les scripts volet, faites glisser le Répète jusqu'à bloquer en position, puis faites glisser les blocs de l'intérieur du pour toujours bloquer à l'intérieur du Répète jusqu'à bloc. Puis supprimez le pour toujours bloc.

Dans l'espace dans le Répète jusqu'à bloquer, on ne peut pas utiliser un quand je reçois bloquer, car ils sont conçus pour démarrer les scripts. Au lieu de cela, nous allons utiliser un opérateur. Faites glisser le = bloquer dans cet espace, faites glisser le Minuteur variable au premier espace, et tapez 0 dans le deuxième espace de sorte que le bloc se lit répéter jusqu'à minuteur = 0.

Maintenant lancez le jeu et quand le temps s’arrêtera, le chat sera toujours visible mais restera immobile.

Dire à l'utilisateur son score à la fin du jeu

Laissons le chat dire à l'utilisateur son score. Créez un nouveau script pour le sprite chat comme suit:

  • quand la toile de fond passe aux cercles
  • dire rejoindre vous avez marqué

Créer ce deuxième bloc est un peu compliqué. Vous devrez faire glisser le dis bonjour! bloquer au script, puis faites glisser le joindre bloquer de Les opérateurs à l'espace où il est dit Bonjour! Puis tapez 'Vous avez marqué' dans le premier espace du bloc de jointure et faites glisser le curseur But variable au deuxième espace. Assurez-vous d'ajouter un espace à la fin de votre texte. Le script ressemblera à ceci:

Maintenant, lorsque vous lancez le jeu, le chat apparaîtra à la fin et vous indiquera votre score..

Résumé

L'ajout d'événements à vos projets vous permet de faire avancer les choses au fur et à mesure de l'avancement du projet, en réponse aux entrées de l'utilisateur, aux scripts atteignant un certain point ou à la valeur d'une variable changée. Dans ce didacticiel, vous avez appris à utiliser des événements pour changer de fond lorsque le compte à rebours est à zéro et afficher le score de l'utilisateur..

Si vous avez envie d'un défi, pourquoi ne pas ajouter à l'image-objet créée des opérateurs qui indiquent à l'utilisateur leur score. Peut-être que vous pourriez utiliser un si bloquer pour détecter la valeur de la But précieux et que le chat dise «Bien joué! si l'utilisateur marque plus qu'un certain montant, ou "Meilleure chance la prochaine fois!" s'ils ont un score faible.

Dans la suite de cette série, nous allons passer à la création d’effets animés à l’aide de fonds. Nous utiliserons les fonds de doublons que nous avons créés dès le début de la série pour créer un effet de zoom avant..