Klone in Scratch – Viele Objekte, eine Idee

In Scratch sind Klone exakte Kopien eines Sprites, die sich unabhängig verhalten können. Sie ermöglichen es, viele gleichartige Objekte (z. B. Gegner, Sterne oder Partikel) ohne mehrfaches Erstellen eigener Sprites zu nutzen. Klone sparen Zeit, vereinfachen den Code und machen Projekte leistungsfähiger — ideal für Spiele, Animationen und interaktivesimulationen, in denen gleiche Elemente in großer Anzahl benötigt werden.

Jedes Mal, wenn auf die Katze Scratch geklickt wird, erscheint ein Kuchen — als Klon des Kuchen-Sprites. Jeder neue Kuchen-Klon wird an eine zufällige Position gesetzt, sodass klar erkennbar ist, dass bei jedem Klick ein weiterer, neuer Kuchen entsteht.

Warnhinweis zu Klonen

Achtung: Klone können auch als Reaktion auf empfangene Nachrichten erstellt werden. Wenn Klone beim Empfang einer Nachricht selbst neue Klone erzeugen, kann die Anzahl schnell exponentiell wachsen — jeder Klon erzeugt weitere Klone, die wiederum weitere Klone erstellen. Dadurch wird die maximale Anzahl erlaubter Klone im Projekt rasch erreicht, was das Programm zum Stillstand bringen oder unerwartetes Verhalten verursachen kann.

Tipps zur Vermeidung:

  • Beschränke das Erzeugen von Klonen auf das Original-Sprite (z. B. nur beim grünen Flaggen-Start oder beim Klick auf die Katze).
  • Verwende Bedingungen (z. B. eine Variable als Schalter), damit nur bestimmte Sprites auf die Nachricht reagieren.
  • Implementiere eine Zählvariable, die die aktuelle Anzahl der Klone überwacht und das Erzeugen stoppt, wenn ein Limit erreicht ist.
  • Vermeide, dass empfangene Nachrichten direkt das Erzeugen neuer Klone auslösen — stattdessen lasse die Bühne oder das Original-Sprite unter Kontrolle Entscheidungen treffen.

Mit diesen Maßnahmen verhinderst du ungewolltes exponentielles Klonen und hältst dein Scratch-Projekt stabil.

Klone gezielt ansprechen – eindeutige ID

Oft müssen Klone nachträglich individuell angesprochen werden (z. B. löschen, bewegen, Status ändern). Dafür vergibst du jedem Klon eine eindeutige Identifikationsnummer (ID).

  • Lokale Variable beim Sprite: id
  • Globale Zählvariable: ID

Ablauf beim Erzeugen eines Klons:

  1. Original-Sprite erhöht die globale Variable ID um 1.
  2. Es erstellt einen Klon.
  3. Im Skript „Wenn ich als Klon entstehe“ übernimmt der Klon den aktuellen Wert von ID in seine lokale Variable id.

Vorteile:

  • Jeder Klon hat eine stabile, eindeutige Kennung.
  • Du kannst gezielt auf bestimmte Klone reagieren (z. B. „wenn id = 7, dann …“).
  • Keine Kollisionen, da die globale ID fortlaufend hochzählt.

Kommentare

Schreibe einen Kommentar zu

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert