Aus Das deutschsprachige Scratch-Wiki

Hinweis: Aktuell ist die Nutzung von Cloud Daten nur eingeschränkt möglich: Es sind maximal 9 Variablen pro Projekt erlaubt, welche lediglich Zahlen speichern können. Die Länge der Zahl ist auf 128[1] Zeichen beschränkt. Cloud Listen sind deaktiviert.

Seit Scratch 2.0 gibt es Cloud Daten (Cloud engl. für Wolke). Das sind Variablen die für alle angemeldeten Projektnutzer zu jeder Zeit den gleichen Inhalt haben, da sie auf den Servern permanent gespeichert werden. Im Offline-Editor von Scratch kann man keine Cloud Variablen erstellen.

Nutzen und Besonderheiten

Eine Cloud-Variable lässt sich fast so wie eine normale Variable erstellen. Dazu muss lediglich ein neues Kästchen angekreuzt werden.

Das Erstellen einer Cloud-Variable

Ob es sich um einen normalen Datentypen oder ein Cloud-Objekt handelt, erkennt man an der Wolke zu Beginn des Namens.

Eine Cloud-Variable im Einsatz

Cloud-Variablen werden häufig für Highscores o.ä. verwendet. Siehe hierzu zum Beispiel dieses nützliche Highscore-Modul von frodewin.

Einschränkungen

  • Nicht-Scratcher und Scratcher mit dem Neuer Scratcher Status können keine Cloud-Variablen verwenden. Das heißt, sie können diese nicht in ihren Projekten einbauen, aber sie können auch keine Variablen in den Projekten anderer Scratcher verändern. Das kann dazu führen, dass neue Scratcher oder Nicht-Scratcher Spiele mit Cloud Variablen nicht richtig spielen können.
  • Cloud Variablen können nicht im Scratch 2 Offline Editor verwendet werden, da die Daten auf dem Server gespeichert werden.
  • Siehe auch die Hinweise ganz oben auf dieser Seite.

Variablen

Cloud-Variablen werden zum Beispiel dazu verwendet, einzelne Werte, wie zum Beispiel die Anzahl an Klicks aller Spieler zusammen, zu speichern und für alle Nutzer anzuzeigen. Außerdem kann die Variablen dazu verwenden einen Sende Block zu entwickeln, welcher Skripte anderer Nutzer auslösen kann.

Bei der Erstellung von Listen gibt es die Cloud-Option derzeit noch nicht, obwohl es bereits einen Test von Cloud-Listen mit einigen Scratch-Benutzern gab.

Da der Inhalt einer Cloud-Variablen aber sehr groß werden kann, können Cloud-Listen durch eine Kodierung des Inhalts in eine Zahl erzeugt werden.

Zahlen in Cloud-Variablen können auf verschiedene Art und Weise dargestellt werden:

Integer im Dezimalformat
zum Beispiel 123456
Integer im Hexadezimalformat (mittlerweile nicht mehr möglich[2])
es muss ein "0x" vorangestellt werden, danach kann die Zahl aus den Ziffern 0-9 und a-f bestehen, zum Beispiel 0x1AFFE. Es sind sowohl kleingeschriebene als auch großgeschriebene Buchstaben erlaubt, d.h. mit dieser Methode können pro Zeichen 22 Zustände dargestellt werden.
Zahlen mit Nachkommastellen
diese werden nicht im Fließkommaformat gespeichert, sondern mit beliebig (innerhalb des Längenlimits) vielen Ziffern, zum Beispiel 3.14159265358979323846264338327950288419716939937510

Sicherheit

Um die Sicherheit der Nutzer zu gewährleisten, ist die Implementierung von offenen "Chats" verboten!. Dies ist ohnehin durch die Limitierung der Cloudvariablen auf Zahlen erschwert. Wirst du trotzdem innerhalb eines Projekt beleidigt oder dir wiederfährt etwas anderes unerlaubtes, so kannst du einfach das Projekt melden. Wichtig ist nun, dass du in den Infotext schreibst, dass es sich um eine Meldung wegen der Cloud Daten handelt.

Chatrooms

Man kann mithilfe einiger Algorithmen auch einen Chat auf Scratch programmieren, der über Cloud-Daten läuft. Allerdings darf man keine "offenen" Chats veröffentlichen, das heißt, Chats, die über keinerlei Beschränkungen, die regeln, was man schreiben darf, verfügen. Die einzigen vom Scratch Team erlaubten Chats müssen über eine Whitelist verfügen, die Wörter enthält, die man schreiben darf. Zusätzlich kann man natürlich auch eine Blacklist benutzen, die Whitelist ist aber Pflicht.

Cloud Data

Jedes Projekt hat seinen eigenen Cloud-Log. In dieser Tabelle werden neue Einträge erstellt, wenn jemand eine Cloud-Date verändert. Dort wird neben dem Benutzernamen und dem ausgeführten Befehl auch die exakte Veränderung und vergangene Zeit angezeigt. Dadurch kann ständig nachgewiesen werden, wer was mit den Cloud-Daten gemacht hat. Eine anonyme Nutzung der Cloud-Daten ist daher nicht möglich, wenn man sich ausloggt kann man auf die Cloud-Variablen nicht mehr zugreifen.

Dies ist sehr hilfreich, wenn man in seinem Projekt Fehler aufdecken möchte.

Cloudvariablen.PNG

Diverse Cloud-Skripte

Im folgenden werden einige Beispiele mithilfe von Bildern gezeigt. Diese Beispiele demonstrieren noch einmal den Nutzen in der Praxis.

Mehrspieler-Pong

Dieses Beispiel zeigt ein einfaches Mehrspielerspiel. Um den Fokus leichter auf die "Cloud-Skripte" zu beschränken handelt es sich um ein einfaches Pongspiel, welches normalerweise mit nur wenigen Skripten auskommt.

Funktionen

Um unser Pong-Spiel fertig zu stellen, benötigen wir folgende Funktionen:

  • Spieler-Einbindung
  • Bewegungen der aktiven Spieler für alle sichtbar machen
  • Synchronisiertes Starten
  • Erkennen einer verloren gegangenen Internetverbindung
  • Sieger ermitteln

Schritt 1: Spieler-Einbindung

Das Spiel kann natürlich nur beginnen, wenn beide Spielerplätze belegt sind. Die Spielerplätze sind in diesem Fall die Cloud Variablen "S1" und "S2". Sind diese Variablen 0, so ist dieser Platz nicht belegt.

Wenn jemand das Projekt startet, gibt es nun 3 Fälle:

  • Beide Plätze sind frei.
  • Einer der Plätze ist frei.
  • Beide Plätze sind belegt.

Wenn beide Plätze belegt sind, passiert nichts. Der Besucher muss warten, bis eine Partie zu Ende gespielt wurde.

Sind beide frei, so wird dies durch ein Skript erkannt und der neue Spieler wird zum ersten Platz hinzugefügt. Dies geschieht mit dem Befehl: Setze "P1" auf (Username). Der Besucher kann jedoch nur mitspielen, wenn er mit einem Scratch-Account eingeloggt ist. Ansonsten wird das Programm ihn nicht als Spieler erkennen.

Ist ein Platz belegt, so muss zunächst der freie Platz ermittelt werden. Danach folgt der selbe Befehl, nur dass diesmal nicht der erste, sondern der freie Platz den Benutzernamen übernimmt.

Probleme

Beim Benutzen der Cloudvariablen kann es zu Problemen kommen:

Löschen

Es kann passieren, dass versucht wird, eine Cloudvariable zu löschen, die noch im Code verwendet wird. In diesem Fall taucht die Variable direkt nach dem Löschen wieder auf, ist aber nur mehr eine lokale Variable, obwohl sie das Cloud-Symbol im Namen hat.

Umbenennen

Falls versucht wird, eine Cloudvariable umzubenennen, die noch im Code verwendet wird, dann bleibt die Cloudvariable bestehen und eine neue Variable taucht auf. Diese sieht aus wie eine Cloudvariable, ist aber keine.


Code zum Einbinden ins Forum:
[wiki=de:Cloud Daten]Cloud Daten[/wiki]
  1. https://scratch.mit.edu/discuss/topic/291775/?page=2#post-2993545
  2. https://scratch.mit.edu/discuss/topic/291775/?page=2#post-2993545