Aus Das deutschsprachige Scratch-Wiki
(Interwiki hinzugefügt) |
K (Updated interwiki link.) |
||
Zeile 58: | Zeile 58: | ||
[[id:Cloning]] | [[id:Cloning]] | ||
[[ru:Клонирование]] | [[ru:Клонирование]] | ||
− | [[ja:クローン | + | [[ja:クローン]] |
[[Kategorie:Programmieren]] | [[Kategorie:Programmieren]] |
Version vom 11. Dezember 2017, 08:41 Uhr
Klonen ist ein Feature in Scratch 2.0, das es dir erlaubt, einen Klon von einer Figur zu kreieren, während das Projekt läuft. Das kann nützlich sein, wenn man zum Beispiel ein "Schieß- und Treffspiel" macht, in dem man eine unendliche Anzahl an Geschossen benötigt. Der Klon wird das gleiche sein, wie die originale Figur, aber als seperate Ebene. Der Klon erbt die Skripte, Kostüme, Klänge, und Beschaffenheiten, kann aber auch verändert werden. Das Klon-Limit liegt bei 301, damit das Projekt später nicht hängt oder deinen Browser zum Abstürzen bringt.
Anwendungen
- Bewegbare Kopien einer Figur erstellen
- Erzeugung von Geschoßen und Gegner in Schieß- und Treffspielen
- Scrollender Hintergrund auf Kachelbasis
- Effekte kreieren
- Zeichenweise Ausgabe von Text
Klonen in Scratch-Modifikationen
Es gibt zwei verschiedene Arten von Klonen in verschiedenen Scratch Modifikationen. Allgemein bezeichnet man sie als "Panther-Style Cloning" und "BYOB-Style Cloning".
Im Panther-Style Cloning erbt der Klon die Eigenschaften der originalen Figur, wird dadurch aber keine neue Figur. Andere Figuren können den Klon fühlen, indem sie den Wird () berührt?-Block mit der originalen Figur als Auswahl benutzen. Der Code für das Panther-Style Cloning war in Scratch 1.4 bereits implementiert, was darauf hinwies, dass es ein geplantes Feature war. Dieser Klon-Style wird in Scratch 2.0 benutzt.
Im BYOB-Style Cloning ist ein Klon eine neue Figur in der Liste der Figuren, mit eigenem veränderbarem Speicher. Klone werden mit dem clone-Block kreiert, wodurch eine Figur geklont wird und eine Verbindung zum Klon erstellt wird, durch die man diesen kontrollieren kann.
Blöcke
- "Erzeuge Klon von ()" wird benutzt um eine Figur zu Klonen. Man kann auch Klone erneut Klonen
- "Wenn ich als Klon entstehe" lässt das vom Klon auszuführende Skript starten, sobald dieser Klon erzeugt wurde
- "Lösche diesen Klon" löscht den Klon am Ende seines Skriptes
- Variablen sind für alle Klone gleich, außer sie sind "nur für diese Figur". Solche lokalen Variablen können für parallel existierende Klone unterschiedliche Werte annehmen. Sie können von außerhalb ihres Klons weder gelesen noch überschrieben werden.
Klonsensor
Um zu wissen, wann ein bestimmter Klon berührt wird, benötigt man eigentlich einen "wird Klon [1] berührt"-Block. Da es diesen jedoch nicht gibt, kann man folgendes Workaround benutzen:
Wenn gf angeklickt //Sobald das Projekt startet entferne [alles v] aus [berührt? v] setze [Klone v] auf (0) //Setzt die momentane Anzahl an Klonen auf 0 füge [ ] zu [berührt? v] hinzu //fügt ein neues Item zur Liste hinzu ändere [Klone v] um (1) //direkt vor dem Klonen muss die Anzahl der Klone verändert werden erzeuge Klon von [mir selbst v] Wenn ich als Klon entstehe setze [Klon ID v] auf (Klone) //setzt die Nummer des Klons auf die Anzahl der Klone die es gibt (da diese Anzahl immer die Nummer des zuletzt erzeugten Klons ist) wiederhole fortlaufend falls <wird [Figur2 v] berührt?> //gibt zurück ob der aktelle Klon Figur2 berührt ersetze (Klon ID) Element von [berührt? v] durch [wahr] //An der Stelle der Klonnummer wird wahr eingefügt warte bis <nicht <wird [Figur2 v] berührt?>> //der Klon wartet, bis Figur2 nicht mehr berührt wird ersetze (Klon ID) Element von [berührt? v] durch [falsch] //gibt zurück, dass der aktuelle Klon Figur2 nicht berührt
Das folgende Skript wird in Figur2 benutzt.
Wenn gf angeklickt wiederhole fortlaufend gehe (3)er-Schritt drehe dich im Uhrzeigersinn um (3) Grad //Beispiel falls <(Element (4) von [berührt? v]) = [wahr]> //falls Element 4 der Liste wahr anzeigt, bedeutet das, dass Figur2 Klon 4 berührt sage [Hallo Klon 4!] für (2) Sek.
Beispielprojekt
Fahre mit dem Mauszeiger über das Bild und schau was passiert. Neugierig wie das funktioniert? Schau dir dieses Projekt auf der Scratch Website an und "schaue hinein".
Schau' dir dieses Projekt auf der Scratch-Webseite an...
[wiki=de:Klonen]Klonen[/wiki]