Sie sind jetzt den größten Teil dieser Scratch-Einsteigerserie. Sie haben ein Spiel erstellt, in dem der Benutzer einer Katze mit einer Krabbe nachjagt. Die Katze sagt: Autsch! Wenn die Krabbe sie einklemmt und eine Punktzahl bleibt. Das Spiel enthält einige Animationen und Punkte, die am Ende angezeigt werden.
In diesem Teil arbeiten wir weiter an diesem Projekt. Wir verwenden einen benutzerdefinierten Block, um unseren Code übersichtlicher und einfacher zu gestalten.
Benutzerdefinierte Blöcke haben einige Verwendungszwecke:
In diesem Tutorial werden wir die ersten drei Ansätze verwenden.
Um dieses Tutorial abzuschließen, benötigen Sie:
Wir werden mit dem Projekt arbeiten, das im letzten Teil dieser Serie erstellt wurde, mit Animationen. 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:
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).
Ö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.
Melden Sie sich bei Scratch an und rufen Sie die Seite für mein Projekt mit Animationen 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!
Zuerst müssen Sie feststellen, wo ein benutzerdefinierter Block Ihre Skripte effizienter machen würde. In diesem Projekt enthält das Hauptskript für die Bühne einige Wiederholungen von zwei Zeilen:
warte 1 s
Timer um -1 ändern
Dies ist nicht viel Wiederholungscode. In einem echten Projekt können Sie es jedoch so belassen, dass wir es jedoch so lassen, dass wir es für dieses Tutorial durch einen benutzerdefinierten Block ersetzen.
Wähle aus Bühne und klicken Sie auf Weitere Blöcke. Klicke auf das Machen Sie einen Block Taste. Sie werden mit der präsentiert Neuer Block Dialogbox:
Sie sehen jetzt ein neues Skript "Hut" namens Countdown pro Sekunde definieren
(oder wie auch immer du es genannt hast):
Um diesen Block zu definieren, müssen Sie die Blöcke hinzufügen, die er unter diesem "Hut" ersetzt. Das werden die sein warte 1 s
und Timer um -1 ändern
Blöcke.
Wenn Sie dies getan haben, bearbeiten Sie das Skript mit diesen beiden sich wiederholenden Blöcken, sodass die beiden Blöcke jedes Mal durch Ihren benutzerdefinierten Block ersetzt werden. Das Skript wird jetzt 11 statt 14 Blöcke enthalten:
Dies hat den Code in diesem Skript nur um drei Zeilen reduziert, aber Sie können sehen, wie Sie die Routinen effizienter machen würden, wenn Sie größere Routinen verwenden oder häufiger wiederholen würden. Wenn Sie einen benutzerdefinierten Block auf alle Sprites anwenden lassen möchten, erstellen Sie ihn auf der Bühne.
Sie können auch benutzerdefinierte Blöcke verwenden, indem Sie große Routinen in Ihren Skripts ersetzen, wodurch Ihre Skripts kürzer und einfacher zu verwalten sind. Das Katzensprite enthält zurzeit ziemlich viele Blöcke in seinem Hauptskript, also wenden wir dieses Prinzip auf dieses Prinzip an.
So sehen die Katzen-Skripte jetzt aus:
Erstellen Sie zwei benutzerdefinierte Blöcke: einen für die Routine, die den Benutzer auffordert, zu definieren, was die Katze sagen soll, und einen für die Routine, durch die die Katze darauf reagiert, dass sie von der Krabbe gefangen wird.
Stellen Sie sicher, dass Sie die Katze ausgewählt haben, und gehen Sie zu Weitere Blöcke Sektion. Drücke den Machen Sie einen Block und benennen Sie Ihren ersten Block. Ich werde es nennen: "Benutzer definiert Katzenklang".
Ziehen Sie nun die Blöcke, die diese Routine ausführen, auf den 'Hut' für Ihren benutzerdefinierten Block. Die Blöcke, die Sie verschieben müssen, sind folgende:
Soll die Katze miauen oder schreien, wenn sie von der Krabbe getroffen wird? und warte
wenn antwort = miau dann
sag meow für 2 sek
sonst
Wenn Antwort = Schrei dann
sag schrei! für 2 sek
Stellen Sie sicher, dass Sie alle darunter liegenden Blöcke zurück zum ursprünglichen Skript ziehen.
Nun füge das hinzu Benutzer definiert Katzenklang
Blockieren Sie Ihr Original-Skript an der Stelle, an der Sie die Blöcke oben entfernt haben.
Wiederholen Sie diesen Vorgang für die darunter liegenden Codezeilen, um einen neuen benutzerdefinierten Block zu erstellen Katze reagiert darauf, erwischt zu werden
, Fügen Sie die Blöcke hinzu und fügen Sie die neuen hinzu Katze reagiert darauf, erwischt zu werden
Blockieren Sie zu Ihrem ursprünglichen Skript.
So sehen die Scripts der Katze jetzt aus:
Die Menge des Codes ist gleich, aber durch die Trennung der beiden Routinen haben Sie es einfacher gemacht, zu sehen, was in Ihrem ursprünglichen Skript passiert. Dies ist eine Technik, die manche Leute als nützlich empfinden werden, während andere es vorziehen, alle Blöcke in einem langen Skript zu behalten!
Eine andere Verwendung für einen benutzerdefinierten Block ist das Erstellen einer rekursiven Routine, in der eine Routine in sich ausgeführt werden kann. Es ist einfacher zu erklären, indem Sie eine erstellen.
Das Benutzer definiert Katzenklang
Der gerade definierte benutzerdefinierte Block fordert den Benutzer auf, einen Sound einzugeben, den die Katze machen wird. Wenn der Benutzer "meow" oder "scream" eingibt, reagiert das Skript darauf. Was aber, wenn der Benutzer etwas anderes falsch schreibt oder eingibt? In diesem Fall möchten wir dem Benutzer eine Nachricht zeigen und dann die Frage erneut stellen. Wir können das machen, indem wir das machen Benutzer definiert Ton
Routine rekursiv.
Wähle das Katzensprite aus und bearbeite das Benutzer definiert Katzenklang
benutzerdefinierten Block. Beginnen Sie mit dem Ersetzen der ob
block in der sonst
Abschnitt der ansonsten
Block mit einer Sekunde ansonsten
Block. Stellen Sie sicher, dass Sie die Bedingungen kopieren (Antwort = Schrei
) von Ihrem Original ob
block in die ob
Abschnitt des neuen ansonsten
Block. Beweg den sag schrei! für 2 sek
block in der ob
Schleife in der ansonsten
Block.
Jetzt in der sonst
Abschnitt der ansonsten
Block, fügen Sie diese Blöcke hinzu:
Entschuldigung, ich habe das 1 Sekunde lang nicht verstanden
Setzen Sie den Timer auf 0
Benutzer definiert Katzenklang
So sieht Ihr Skript aus:
Wenn der Benutzer nun eine falsche Antwort eingibt, sagt die Katze: "Sorry, das habe ich nicht verstanden", der Timer wird auf Null zurückgesetzt, und die Routine wird erneut ausgeführt und fragt den Benutzer, welchen Ton die Katze haben soll machen.
Benutzerdefinierte Blöcke sind ein sehr nützliches Werkzeug in Scratch. Wie Sie in diesem Lernprogramm erfahren haben, können Sie sie verwenden, um das Wiederholen eines Satzes von Blöcken in Ihrem Projekt zu speichern. Sie können auch Routinen definieren, die Sie dann zu einem Skript hinzufügen, wodurch Ihre Skripts leichter verwaltet werden können. Wenn Sie eine Routine wiederholen müssen, wenn eine Bedingung erfüllt ist, können Sie eine rekursive Routine wie die für die Katze erstellte Routine erstellen.
Sie können auch Zeichenfolgen, Zahlen und boolesche Eingaben in Ihre benutzerdefinierten Blöcke einschließen. Dies bedeutet, dass Sie jedes Mal, wenn Sie einem Skript einen Block hinzufügen, seine Funktionsweise ändern können. Weitere Informationen hierzu finden Sie im Scratch-Wiki.
Ihr Scratch-Projekt ist jetzt abgeschlossen! Im nächsten und letzten Teil dieser Serie werden wir uns ansehen, wie Sie Ihre Arbeit teilen und Studios für die Zusammenarbeit erstellen können.