Machen Sie Ihre Scratch-Animationen mit Ereignissen reaktiver

Was Sie erstellen werden

Im vorigen Tutorial haben Sie weiter an einem Projekt gearbeitet, bei dem eine Krabbe eine Katze um den Bildschirm jagt, eine Zeitbegrenzung hinzufügt und Punkte einhält.

In diesem Teil arbeiten wir weiter an diesem Projekt. Wir fügen ein Broadcast-Ereignis hinzu und verwenden es, um Skripts für andere Sprites auszulösen. Dann verstecken wir die meisten Sprites, wenn das Spiel vorbei ist, und zeigen das Endergebnis an.

Was du brauchen wirst

Um dieses Tutorial abzuschließen, benötigen Sie:

  • ein kostenloses Konto bei Scratch
  • einen Webbrowser mit Zugriff auf Scratch (ich empfehle die Verwendung eines modernen Browsers wie Chrome, Firefox, Safari oder Opera, um die besten Ergebnisse zu erzielen)

Fertig machen

Wir werden mit dem im vorigen Teil dieser Serie erstellten Projekt arbeiten. Wir werden die bisher erstellten Assets und Skripts verwenden und weitere hinzufügen.

Je nachdem, ob Sie an diesem Lernprogramm mitgearbeitet haben, gibt es zwei Möglichkeiten, um mit diesem Lernprogramm zu beginnen:

  • Öffnen Sie das Projekt, das Sie für das letzte Lernprogramm erstellt haben, und erstellen Sie ein Duplikat.
  • Remixe das Projekt, das ich erstellt habe, um das letzte Tutorial zu unterstützen.

Alternativ können Sie einfach in demselben Projekt weiterarbeiten, das Sie bereits erstellt haben. So tun Sie jedes davon (Sie müssen nur eins tun).

Duplizieren dein eigenes Projekt

Öffnen Sie Scratch und gehen Sie zu dem Projekt, das Sie duplizieren möchten. Stellen Sie sicher, dass Sie auf die Schaltfläche geklickt haben Siehe innen Schaltfläche, damit Sie die Arbeitsweise des Projekts sehen können.

Klicken Sie in der Symbolleiste auf Datei> Als Kopie speichern:

Scratch öffnet Ihre neue Kopie. Benennen Sie es um und beginnen Sie damit zu arbeiten.

Mein Projekt neu mischen

Melden Sie sich bei Scratch an und rufen Sie die Seite für mein Projekt zu Daten und Variablen auf.

Drücke den Siehe innen Schaltfläche zum Anzeigen des Projekts:

Klicken Sie jetzt auf Remix Taste. Scratch speichert ein Duplikat meines Projekts als neues Projekt in Ihrem Konto. Umbenennen Sie es und Sie sind gut zu gehen!

Erstellen eines Broadcast-Ereignisses zum Senden von Nachrichten

In diesem Teil der Serie fügen Sie ein Übertragung Nachricht an Ihr Projekt, um intern innerhalb Ihres Projekts zu kommunizieren. Sie können eine Sendung in einem Skript erstellen, wenn das Skript einen bestimmten Punkt erreicht oder eine Bedingung in Bezug auf ein Sprite erfüllt ist. Anschließend kann eines der anderen Sprites (oder der Bühne) auf die Übertragung dieser Nachricht reagieren. Dadurch werden Ihre Sprites miteinander verbunden und Sie haben mehr Spielraum, wenn Sie Benutzerinteraktionen hinzufügen möchten.

Sie werden sich daran erinnern, dass wir zuvor ein Sprite mit Text ("Autsch !!") hinzugefügt haben, das wir als Kostüm für dieses Sprite gezeichnet haben. Im Moment sitzt das Sprite unbeweglich auf der Bühne und tut nichts. Jetzt verwenden wir eine Sendung, um etwas dazu zu bringen.

Aber zuerst erstellen wir die Sendung.

Klicken Sie auf das Katzensprite und bearbeiten Sie das bereits erstellte Skript.

Öffne das Veranstaltungen Blöcke und ziehen Sie die Broadcast-Nachricht1 Blockieren Sie das Skript direkt unter dem Score um 1 ändern Block. Klicken Sie auf die Dropdown-Liste für message1 und klicken Sie auf neue Nachricht… . Geben Sie einen Text ein, mit dem Sie Ihre Sendung definieren können. Dieser Text wird vom Benutzer nicht angezeigt, aber Sie werden ihn an anderer Stelle in Ihrem Projekt verwenden. Daher ist es sinnvoll, ihn als sinnvoll zu bezeichnen. Ich rufe meine an erwischt.

So sieht das Skript der Katze jetzt aus:

Jetzt können wir diese Sendung verwenden, um Skripts für andere Sprites auszulösen.

Verwenden eines Broadcast-Ereignisses zum Starten eines Skripts

Bisher haben wir alle unsere Skripte mit der wenn grüne Flagge geklickt wurde block, was bedeutet, dass das Skript beim Start des Projekts automatisch ausgeführt wird. Manchmal möchten Sie nicht, dass dies geschieht: Sie möchten, dass ein Skript nach dem Start des Projekts ausgelöst wird. Es gibt mehrere Möglichkeiten, dies zu tun: Sie können ein Skript auslösen, wenn ein Sprite oder eine Taste gedrückt wird oder wenn sich eine Variable wie die Lautstärke ändert. Die hier verwendete Methode startet ein Skript, wenn das Sprite eine Broadcast-Nachricht empfängt.

Klicken Sie auf das zuvor erstellte Text-Sprite (Sprite2). Beginnen Sie, indem Sie ihm einen besseren Namen geben (durch Klicken auf das Symbol) ich Symbol oben links und bearbeitete den Namen) -Ich rufe mein an Autsch.

Wir möchten, dass dieses Sprite die meiste Zeit unsichtbar ist und erst dann erscheint, wenn die Krabbe die Katze fängt. Wir erstellen also zwei Skripts: das erste, um das Sprite auszublenden, und das zweite, um es erscheinen zu lassen.

Erstellen eines Skripts, um das Sprite verschwinden zu lassen

Erstellen Sie dieses Skript für das Sprite:

  • wenn grüne Flagge geklickt wurde
  • verbergen

Sie finden das verbergen Block in der Sieht aus Blöcke. Das verbirgt das Sprite: Wenn Sie nun das Projekt starten, wird es verschwinden.

Erstellen eines Skripts, damit das Sprite wieder angezeigt wird

Erstellen Sie nun ein zweites Skript für das Autsch-Sprite:

  • wenn ich erwischt werde
  • geh zur Katze
  • Show
  • Warten Sie 0,5 Sekunden
  • verbergen

Das erste Sprite findest du im Veranstaltungen Blöcke, die gehe zu Block in der Bewegung Blöcke, die warten Block in der Steuerung Abschnitt und die Show und verbergen Blöcke in Sieht aus.

Verwenden von Ereignissen mit Hintergrund

Wenn Ihre Projekte länger und komplexer werden, möchten Sie möglicherweise dem Benutzer das Gefühl vermitteln, durch ein Spiel oder eine Animation voranschreiten zu können, indem Sie den Hintergrund ändern. Hier machen wir das, wenn der Timer abgelaufen ist und das Spiel beendet ist.

Dafür müssen wir:

  • Fügen Sie eine Sendung hinzu, wenn der Timer abgelaufen ist
  • Erstellen Sie einen neuen Hintergrund, der am Ende des Spiels angezeigt wird
  • Ändern Sie den Hintergrund, wenn der Timer abgelaufen ist
  • Blende die vorhandenen Sprites aus, wenn das Spiel endet
  • Teilen Sie dem Benutzer die Punktzahl mit, wenn das Spiel endet

Wir werden die verwenden Übertragung Veranstaltung Blöcke und auch die Wenn der Hintergrund wechselt zu Ereignisblock. Beginnen wir mit dem Erstellen dieser Sendung.

Eine Sendung erstellen

Wähle aus Bühne und fügen Sie ein Übertragung blockieren Sie bis zum Ende des Skripts und ersetzen Sie das Stoppen Sie alle Block. Ich rufe diese Sendung an Spiel ist aus.

Neuen Hintergrund erstellen

Erstellen Sie jetzt eine zusätzliche Kulisse für die Bühne, wie Sie sie zuvor in dieser Serie erstellt haben. Wähle aus Bühne, klicke auf das Hintergründe Registerkarte und importieren, zeichnen oder wählen Sie einen Hintergrund aus der Bibliothek. Ich wähle das aus Kreise Kulisse aus der Bibliothek.

Die neue Kulisse wird jetzt angezeigt, und Ihre ursprüngliche Kulisse verschwindet - keine Panik! Das Original wird angezeigt, wenn das Projekt gestartet wird, und das neue, wenn das Spiel beendet ist.

Hintergrund zum richtigen Zeitpunkt ändern

Inzwischen können Sie wahrscheinlich herausfinden, wie der erste Hintergrund angezeigt wird, wenn das Projekt gestartet wird. Ziehen Sie einfach die Hintergrund wechseln zu Block von der Sieht aus blockiert das Skript für die Bühne, direkt unter der wenn grüne Flagge geklickt wurde Block und über dem setze Score auf 0 Block. Wählen Sie in der Dropdown-Box in diesem Block Strand Malibu.

Wenn Sie nun das Projekt ausführen, wechselt der Hintergrund wieder zu dem, mit dem Sie vertraut sind:

Um den Hintergrund nach Ende des Spiels zu ändern, erstellen Sie ein neues Skript für die Bühne:

  • wenn ich erwischt werde
  • Hintergrund zu Kreisen wechseln

Ihre Bühne hat jetzt zwei Skripte:

Wenn Sie jetzt Ihr Projekt ausführen, ändert sich der Hintergrund, wenn das Spiel endet. Das Spiel wird jedoch nicht beendet. Lass uns das reparieren.

Sprites verstecken, wenn das Spiel endet (und sie anzeigen, wenn es beginnt)

Wenn das Spiel endet, möchten wir, dass die Krabben-, Seestern- und Autsch-Sprites verschwinden. Deshalb müssen wir für jeden dieser Spite ein identisches Skript erstellen, das durch die Übertragung ausgelöst wird. Die gute Nachricht ist, dass Sie das Skript einmal erstellen und dann in jedes der Sprites kopieren können.

Beginnen Sie mit dem Krabben-Sprite. Erstellen Sie dieses Skript dafür:

  • wenn ich das Spiel beendet habe
  • verbergen

Kopieren Sie dieses Skript nun in jedes der Auties und Seestern-Sprites, indem Sie das Skript aus dem Ordner ziehen Skripte Scheibe für das Krabbensprite auf jedes der Sprites unterhalb der Hauptstufe.

Wenn Sie jetzt das Spiel spielen, werden Ihre Sprites verschwinden, wenn das Spiel endet. Sie werden jedoch nicht wieder angezeigt, wenn Sie das Spiel erneut spielen. Sie müssen also beim Start des Projekts angezeigt werden.

Fügen Sie für jedes der Krabben- und Seesterngeister ein Show Blockieren Sie das Skript, das mit beginnt wenn grüne Flagge geklickt wurde, gleich am Anfang. Tun Sie dies nicht für das Autschige Sprite, da dies nur erscheint, wenn sich die Krabbe und die Katze berühren. Das Krabben-Sprite zum Beispiel sieht jetzt so aus:

Wenn Sie jetzt das Spiel spielen, erscheinen die Sprites am Anfang und verschwinden am Ende. Das einzige, was jetzt nicht funktioniert, ist das Katzensprite, das sich immer noch bewegt. Wir möchten nicht, dass es das tut, also bearbeiten wir das vorhandene Skript für die Katze.

Die Katze hat derzeit eine für immer Block, der seine Bewegung und die Partitur steuert. Ersetzen Sie das für immer Block mit einem wiederhole bis Vergewissern Sie sich, dass alle Blöcke immer noch im wiederhole bis Block, der sich im Inneren befand für immer Block. Sie können es einfacher finden, die für immer Block weg vom Skript auf der Skripte ziehen Sie die wiederhole bis Block in Position und ziehen Sie die Blöcke aus dem für immer block in der wiederhole bis Block. Dann löschen Sie die für immer Block.

Im Raum in der wiederhole bis Block, können wir keine verwenden wenn ich erhalte blockieren, da sie dazu gedacht sind, Skripte zu starten. Stattdessen verwenden wir einen Operator. Zieh den = Block in diesen Raum ziehen, ziehen Sie die Timer Variable zum ersten Leerzeichen und Typ 0 im zweiten Raum liest sich also der Block Wiederholen bis Timer = 0.

Nun führe das Spiel aus und wenn die Zeit vorbei ist, ist die Katze immer noch sichtbar, aber immer noch.

Dem Benutzer die Punktzahl mitteilen, wenn das Spiel endet

Lassen Sie uns die Katze dem Benutzer ihre Punktzahl mitteilen. Erstellen Sie ein neues Skript für das Katzensprite wie folgt:

  • Wenn der Hintergrund zu Kreisen wechselt
  • sagen Sie mitmachen Sie haben Punkte erzielt

Das Erstellen dieses zweiten Blocks ist etwas kompliziert. Sie müssen die ziehen sag Hallo! Blockieren Sie das Skript, und ziehen Sie dann die Beitreten blockieren aus Betreiber in den Raum, wo es heißt Hallo! Geben Sie dann im ersten Feld im Verknüpfungsblock "Sie haben punkten" ein und ziehen Sie das Ergebnis variabel zum zweiten Raum. Stellen Sie sicher, dass Sie ein Leerzeichen am Ende Ihres Textes hinzufügen. Das Skript wird so aussehen:

Nun, wenn Sie das Spiel ausführen, wird die Katze am Ende alleine erscheinen und Ihnen Ihre Punktzahl mitteilen.

Zusammenfassung

Durch das Hinzufügen von Ereignissen zu Ihren Projekten können Sie während des Projektverlaufs Ereignisse ausführen, als Reaktion auf Benutzereingaben, das Erreichen eines bestimmten Punktes durch Skripts oder den Wert einer variablen Variable. In diesem Lernprogramm haben Sie gelernt, wie Sie mithilfe von Ereignissen den Hintergrund ändern können, wenn der Timer auf null heruntergezählt wird, und die Bewertung des Benutzers anzeigen.

Wenn Sie Lust auf eine Herausforderung haben, können Sie dem von Ihnen erstellten Sprite einige Operatoren hinzufügen, die dem Benutzer die Punktzahl mitteilen. Vielleicht könnten Sie eine verwenden ob blockieren, um den Wert von zu ermitteln Ergebnis wertvoll und lassen Sie die Katze sagen: "Gut gemacht!" wenn der Benutzer mehr als einen bestimmten Wert erzielt, oder "beim nächsten Mal mehr Glück!" wenn sie eine niedrige Punktzahl haben.

Im nächsten Teil dieser Serie werden animierte Effekte mit Hintergründen erstellt. Wir werden die doppelten Kulissen verwenden, die wir gleich zu Beginn der Serie erstellt haben, um einen Zoom-Effekt zu erzeugen.