Aus Das deutschsprachige Scratch-Wiki

Ein Unterprogramm ist ein Teil eines Scratch-Projekts das von Skripten der Figur aufgerufen werden kann, um eine Aufgabe zu übernehmen. Nach der Ausführung des Unterprogramms wird das aufrufende Skript weiter ausgeführt. Mit Unterprogrammen kann man die Scratch-Blöcke somit um weitere Funktionen erweitern. Ab Scratch 2.0 kannst du Unterprogramme mit den Weiteren Blöcken erstellen und verwenden. Man spricht daher auch von benutzerdefinierten Blöcken.

Es gibt folgende verschiedene Möglichkeiten, die in diesem Artikel näher erläutert werden:

  • Einskriptig mit Parameter
  • Mehrskriptig ohne Parameter
  • Mehrskriptig mit Parameter

Einskriptig mit Parameter

Diese Methode ist die einfachste Methode. Allerdings hast du im Unterprogramm nur ein Skript (in der Informatik "thread" genannt) zur Verfügung.

Dazu wechselst du erstmal zur Blockkategorie "Weitere Blöcke". Dort klickst du auf "Block erstellen". Dann kannst du bestimmen, wie der Block aussehen soll, also wie er heißt und welche Lücken für andere Blöcke (Parameter) dort sein sollen.

Wenn du das getan hast erscheint ein lila Block "Definiere blablub". An diesen kannst du ganz normal Blöcke anhängen. Diese werden immer ausgeführt, wenn du den Block "blablub" verwendest.

Zum Beispiel soll die Katze sich zu einem bestimmten Ort bewegen. Dazu erstellen wir den Block "Katze zu x: (x) und y: (y) bewegen".

Neuer Block.png

An den "Definiere"-Block hängen wir "gehe zu x: (), y:()". In die Lücken ziehen wir die kleinen Blöcke (x) und (y), die wir aus dem "Definiere"-Block rausnehmen.

Neuer Block 2.png

Zugegeben, dieser Block ist relativ unnütz, weil wir sowieso den "gehe zu ()"-Block haben, ist aber auch nur ein Beispiel.

Mehrskriptig ohne Parameter

Für diese Methode brauchen wir einfach nur die Sende und Empfangen Blöcke. Das Unterprogramm wird durch "Sende (Unterprogramm)"-Block aufgerufen. Die Skripte kommen unter "Wenn ich (Unterprogramm) empfange"-Blöcke.

Beispiel für einen C-Dur Akkord

Mehrskriptig mit Parameter

Diese Methode ist die umfangreichste von den dreien. Sie funktioniert mit Elementen aus den beiden anderen. Man erstellt einen Block, in dem die Parameter vorhanden sind. Statt die Skripte direkt an den "Definiere"-Block zu hängen, überträgt man zuerst die Parameter in Variablen. Dann triggert ("auslösen") man die Skripte mit einem "sende () an alle"-Block.

Siehe auch



Code zum Einbinden ins Forum:
[wiki=de:Unterprogramme]Unterprogramme[/wiki]