Wir nutzen Cookies, um das allgemeine Benutzerelebnis zu verbessern. Mit der Nutzung unseres Wikis stimmst du der Nutzung von Cookies zu.

Dropdown-Listen

Eine Dropdown-Liste bei einem Operatorenblock

Manche Blöcke haben in einem Feld bestimmte Optionen fest vorgegeben, von denen eine ausgewählt werden kann. Dieses Feld nennt sich Dropdown-Liste. In einige dieser Felder können andere Blöcke hineingezogen werden. Dadurch wird ermöglicht, dass bestimmte Optionen dynamisch/variabel ausgewählt werden können. Teilweise sind damit Ausdrücke möglich, die nicht in der Dropdown-Liste selbst enthalten sind.

Kombinationsfelder

Ein Kombinationsfeld (auch "Combobox") ist eine Mischung aus einer Dropdown-Liste und einem Eingabefeld. Man findet es z.B. bei Klang- und Listenblöcken. Sie haben bestimmte Auswahlmöglichkeiten (häufig „1“, „letztes“ und „alles“ oder „zufälliges“), die man direkt auswählen kann. Da nicht alle Möglichkeiten in der Liste enthalten sind, kann man individuelle Werte eingeben.

Direktes Eintragen

Wenn man auf das Feld klickt (nicht auf den Pfeil), kann man einen bestimmten Wert direkt eintragen. Es werden allerdings nur numerische Eintragungen akzeptiert. Es ist nicht möglich, dort Buchstaben oder Sonderzeichen mithilfe der Tastatur hineinzuschreiben. Eine Ausnahme ist das „e“, da es für Gleitkommazahlen verwendet werden kann. Hexadezimalzahlen können nicht direkt eingegeben werden.

Beispiele:

Element (5 v) von [Liste v]
spiele Ton (6.5e1 v) für (0.5) Schläge

Wertblöcke

Neben der Möglichkeit, Werte direkt einzutragen, können auch Wertblöcke in das Feld hineingezogen werden. Der Wert wird numerisch interpretiert, auch bei Wahrheitsblöcken. Falls es sich um eine Zeichenkette handelt, wird meist mit dem Zahlenwert 0 fortgefahren. Im Gegensatz zum direkten Eintragen werden bei Wertblöcken zusätzlich auch Hexadezimalzahlen akzeptiert.

Beispiele:

setze Richtung auf ((x-Position) * (10))
Element (var) von [Liste v]

Dropdown-Listen

Direkte Dropdown-Listen unterscheiden sich zu den Kombinationsfeldern dadurch, dass sie keinen weißen, sondern einen (entsprechend ihrer Kategorie) farbigen Hintergrund aufweisen. Daher ist es auch nicht möglich, Werte direkt in sie hineinzuschreiben. Ob sie Wertblöcke akzeptieren und wie sie solche interpretieren, ist für jeden Block individuell festgelegt. Im Folgenden werden einige dieser Blöcke erklärt.

Zeichenketten

Zeichenketten können über Variablen, Listenelemente oder bestimmte Operatorenblöcke in manche Blöcke eingesetzt werden. Enthält die Zeichenkette mindestens einen Buchstaben oder ein Sonderzeichen, so wird die Zeichenkette auch als solche erkannt.

Die Kostüm- und Klangblöcke suchen sich diejenige Einheit, deren Name mit der Zeichenkette übereinstimmt. Wenn die Zeichenkette einer Zahl entspricht und es den Kostümnamen nicht gibt, wird die Einheit mit der entsprechenden Ordnungszahl verwendet.

Einige Blöcke, bei denen andere Figuren in der Dropdown-Liste ausgewählt werden können, akzeptieren Wertblöcke anstelle des Auswahlmenüs. Dabei wird der Wert stets als Zeichenkette interpretiert.

Gibt man eine Zeichenkette, die nur aus Zahlen besteht, an den wechsle zu Bühnenbild ()-Block weiter, dann wird dieser Wert - anders als bei dem Kostümwechselblock - direkt als Zahlenwert interpretiert.

Beispiele:

setze [var v] auf [Kostüm1]
wechsle zu Kostüm (var) // wechselt also zu "Kostüm1"
(Kostümnummer) // 2
drehe dich zu (verbinde [Figur] (Kostümnummer)) // dreht sich zu "Figur2"

Zahlenwerte

Wertblöcke, die eine Zahl zurückgeben, werden von den Kostümwechsel-, Bühnenbildwechsel- und Klangblöcken auch als solche interpretiert. Während bei einer Zeichenkette der entsprechende Kostümname gesucht wird, repräsentieren Zahlen die Kostüm- oder Klangnummer. Dabei müssen folgende Besonderheiten beachtet werden:

  • Der Zahlenwert 0 steht für das letzte Kostüm bzw. den letzten Klang.
  • Bei negativen Zahlenwerten wird vom letzten Kostüm/Klang (mit der Ordnungszahl 0) rückwärts gezählt. Beispiel: Die Einheit mit dem Zahlenwert -1 entspricht also der vorletzten Einheit.
  • Dezimalzahlen werden gerundet.
  • Hexadezimalzahlen und Gleitkommazahlen werden ebenfalls akzeptiert.

Dropdown-Listen, die einen Figurennamen erwarten, interpretieren Zahlenwerte allerdings direkt als Zeichenkette.

Beispiele:

wechsle zu Kostüm ([Stunde v] im Moment) // wechselt zur Kostümnummer der aktuellen Stunde
spiele Klang ((5) - (6)) ganz // spielt den vorletzten Klang
gehe zu ([Wurzel v] von (25)) // geht zur Figur namens "5"

Wahrheitswerte

Der Umgang mit Wahrheitswerten in diesem Zusammenhang ist ein bisschen komplizierter.

Den meisten Spielraum bieten die Kostümwechselblöcke. Die erste Priorität, nach der sie das passende Kostüm suchen, ist der Kostümname. Gibt es also ein Kostüm namens „true“ oder „false“, wird dieses ausgewählt. Ist ein solcher Name jedoch nicht vorhanden, wird der Wert im zweiten Schritt als Zahlenwert interpretiert. Dabei entspricht „true“ = 1 (erstes Kostüm) und „false“ = 0 (letztes Kostüm). Beim Wechseln des Bühnenbildes wird allerdings nur nach den Namen "true" oder "false" gesucht, eine numerische Interpretation erfolgt nicht.

Blöcke, die eine Figur als Parameter erwarten, interpretieren einen Wahrheitswert immer als Zeichenkette. Dabei funktionieren nur die Namen „true“ und „false“ (und nicht etwa „1“ und „0“).

Klangblöcke interpretieren Wahrheitswerte nicht – völlig egal, ob es Klänge mit den Namen „true“ oder „false“ gibt oder nicht. Es wird kein Klang abgespielt. Wird ein Wahrheitswert als Nachricht versendet, reagieren die Empfänger nur auf "true" oder "false".

Beispiele:

wechsle zu Kostüm <[1] = [1]> // wechselt zu Kostüm "true", ansonsten zum ersten Kostüm
sage ([x-Position v] von <[1] = [0]>) // sagt die x-Position der Figur "false"
spiele Klang <wird [Mauszeiger v] berührt?> // es passiert nichts

Variablen und Listenelemente

Speichert man Werte in Variablen oder Listenelementen und will diese in Dropdown-Listen verwerten, sollte man genau wissen, wie ihre Werte interpretiert werden. Eine „Faustregel“ könnte etwa lauten: „Eine Variable wird so interpretiert, wie sie zuletzt gesetzt wurde.“

Wurde sie zuvor auf einen Block gesetzt, der einen Zahlenwert ausgibt, so wird auch ihr Wert (soweit möglich) als Zahlenwert interpretiert. Dasselbe gilt, wenn man den ändere () um ()-Block benutzt.

Wurde ein Block verwendet, der eine Zeichenkette ausgibt, wird auch ihr Wert so behandelt, auch wenn die Zeichenkette nur aus Zahlen besteht. Dasselbe gilt für direkte Eingaben beim setze () auf ()-Block.

Bei der Nutzung von Wahrheitsblöcken wird die Variable auch entsprechend interpretiert.

Wichtig: Nach jeder Änderung der Variable ändert sich ihre Interpretation entsprechend der letzten Operation. Die Regeln für Variablen gelten auch für Listenelemente.

Beispiel:

setze [var v] auf [5]
wechsle zu Kostüm (var) // wechselt zum Kostüm mit dem Namen "5"
ändere [var v] um (1)
wechsle zu Kostüm (var) // wechselt zum Kostüm mit der Kostümnummer 6

Konvertieren

Bei all diesen relativ komplizierten Regeln kann es passieren, dass ein Projekt nicht richtig funktioniert, da ein Wert anders interpretiert wird, als man es erwartet. Um sichergehen zu können, dass der Wert richtig interpretiert wird, gibt es einige praktische Tipps.

Zu Zeichenkette

Um einen Zahlen- oder Wahrheitswert („true“ oder „false“) in eine Zeichenkette umzuwandeln, kann man ihn mit einer leeren Zeichenkette verbinden. Möchte man bei den Wahrheitswerten statt „true“ oder „false“ lieber die entsprechende Zahl als Zeichenkette, kann man z.B. zu dem Wahrheitswert 0 addieren, was daraus einen Zahlenwert macht, und anschließend mit einer leeren Zeichenkette verbinden.

Beispiele:

wechsle zu Kostüm (verbinde (var) ()) // interpretiert die Variable als Zeichenkette
spiele Klang (verbinde (<Maustaste gedrückt?> + (0)) ()) ganz // spielt den Klang namens "1" oder "0"

Zu Zahlenwert

Um eine Zeichenkette oder einen Wahrheitswert zu einem Zahlenwert zu konvertieren, kann man z.B. einfach die Zahl 0 dazuaddieren. Der Operatorenblock gibt nämlich einen Zahlenwert zurück. Auch andere Rechenoperationen sind möglich.

Beispiel:

spiele Klang (<[1] = [1]> + (0)) // spielt den ersten Klang

Zu Wahrheitswert

Um einen Wahrheitswert zu erhalten, kann man einen Zahlenwert (0 oder 1) oder eine Zeichenkette („true“ oder „false“) mit dem zum Eingabetyp passenden Wert für „wahr“ vergleichen.

Beispiel:

setze [var v] auf [true]
wechsle zu Kostüm <(var) = [true]> // wechselt zum Kostüm "true" oder zum ersten Kostüm



Code zum Einbinden ins Forum:
[wiki=de:Dropdown-Listen]Dropdown-Listen[/wiki]