Aus Das deutschsprachige Scratch-Wiki

Baustelle.png Dieser Artikel ist noch nicht fertig. Bitte nimm keine Änderungen vor, bis der Autor diesen Hinweis entfernt.


Allgemeines über Cloud-Variablen

Mit Scratch lassen sich Online-Spiele sowie Server erstellen. Allerdings gibt es dafür Vorteile und Nachteile, über die du dich mehr informieren solltest. So sieht eine Cloud-Variable aus:

 (☁ Player 1)
 

Wenn die Cloud-Variable einen neuen Wert bekommt, ist dieser Wert in der Cloud gespeichert, jeder der nun das Projekt öffnet oder in einem Tab geöffnet hat, bekommt auch diesen Wert. So würden sich auch Chats entwickeln lassen, aber das ist in Scratch nicht erlaubt! Bitte beachte diese Regel. Es ist sehr wichtig, die Scratch-Community sauber zu halten.

Was sind die Nachteile an Cloud-Variablen?

• Du darfst nur zehn Cloud-Variablen in einem Projekt verwenden.

• Jede Cloud-Variable darf nur 256 Zeichen enthalten. Wenn du einen längeren Wert festlegst, werden die anderen Spieler den Wert nicht erhalten.

• Jede Cloud-Variable darf nur Ziffern von eins bis zehn enthalten. Wenn du auch andere Zeichen im Wert festlegst, werden die anderen Spieler den Wert nicht erhalten.

Wie arbeite ich mit Cloud-Variablen?

Wie du bereits gelesen hast, kann man in Cloud-Variablen nur Ziffern angeben, aber wie kann man so ein Online-Spiel erstellen, wo Daten wie Positionen oder Benutzernamen an andere Spieler übertragen werden? Die Lösung ist ein Encoding-System, was alle Buchstaben in eine bestimmte Zahl umwandeln kann, und diese wieder in Buchstaben zurück. Hier siehst du ein Beispiel für dieses System:

Verständlicher Text In Ziffern umgewandelt
A 01
B 02
C 03

Wenn man jetzt den Text "Ab" in einer Cloud-Variable angeben wolle, so würde der Wert der Cloud-Variable "0102" erhalten. Jedoch muss erstmal ein System programmiert werden, dass diese Werte miteinander umwandeln kann. Um dieses System zu programmieren, schaue in den übernächsten Unterabschnitt.

Wie erstelle ich Cloud-Variablen?

Um Cloud-Variablen zu erstellen, musst du erstmal folgende Stichpunkte erfüllt haben:

• Du musst den Status "Scratcher" und nicht "Neuer Scratcher" besitzen, für weitere Infos, belese dich bitte hier weiter.

• Du musst den bisherigen Artikel bis hier durchgelesen haben.

• Du musst ein Projekt auf der Scratch-Website erstellt haben mit einem gültigen Konto.

So erstellst du eine Cloud-Variable:

  1. Öffne im Projekt-Editor links in der Block-Bibliotheck das Variablen-Fenster.
  2. Klicke auf "Variable erstellen".
  3. Gebe einen Namen ein und stelle "Cloud-Variable" auf "Ja" ein.

Encoding- und Decoding-System



Schau' dir dieses Projekt auf der Scratch-Webseite an...


Wichtig

Diese Stichpunkte sind sehr wichtig! Lese sie dir zuerst durch!

  • Den Wert, den die Cloud-Variable bekommt, darf nur eine Zahl sein: Sie kann ein . enthalten und ein Minus, das aber nur am Anfang steht!
  • Du musst ein Scratcher sein, um mit Cloud-Variablen zu arbeiten! Schaue auf deiner Profilseite, ob du ein Scratcher oder ein neuer Scratcher bist!
  • Wenn du zum ersten Mal ein onlines Spiel programmierst, empfehlen wir dir, mit einem einfachen Spiel anzufangen!
  • In einem Projekt dürfen nur 10 Cloud-Variablen vorkommen!

Anfang: Cloud-Spiel System vorbereiten

Schritt 1

Hier kommt Schritt 1! Ein online-Spiel besteht immer aus einem "Cloud-Spiel System" Das System besteht nur aus wenigen Teilen!

  • Cloud-Date schicken
  • Cloud-Daten empfangen
  • Nach freiem Platz suchen

Als erstes musst du die Cloud-Variablen erstellen! Da man nur 10 Cloud-Variablen erstellen kann, kann es auch nur 10 oder weniger Spieler geben! Die Cloud-Date, die in den "Cloudmintor" geschickt wird, darf aber auch nicht zu lang sein!

 (☁ Player 1)
 (☁ Player 2)
 (☁ Player 3)
 (☁ Player 4)
 (☁ Player 5)
 (☁ Player 6)
 (☁ Player 7)
 (☁ Player 8)
 (☁ Player 9)
 (☁ Player 10)
 

Schritt 2

Jetzt sind wir auch schon in Schritt 2: Das System programmieren! Als erstes Fangen wir mit dem Stichpunkt...

  • Nach freiem Platz suchen

... an! Erstmal: Was bedeutet dieser Stichpunkt! Wenn gerade ein Spieler das online Spiel spielt, belegt er einen "Platz" und wenn du jetzt mitspielen möchtest, muss ein freier Platz gesucht werden! Wenn alle 10 Plätze (10 Variablen) besetzt sind, bist du zum Beispiel ofline (Das heißt: Die anderen onlinen Spieler sehen dich nicht!

Wir müssen uns zuerst überlegen, was für ein onlines Spiel wir programmieren! Es gibt viele beliebte Spiele!

  • Hole.io
  • Agar.io
  • Snake.io

Das ist aber alles noch zu schwer! Wir programmieren Das Spiel aus dem Beispiel nach! Ein Menü zu programmieren, weißt du hoffentlich, wie das geht!

Wenn ich [Laden... v] empfange
zeige dich
setze [☁ Player 1 v] auf [0] // Die Cloud Variablen werden auf 0 gesetzt. Spielt gerade ein Spieler, dann setzt er eine der Cloud-Variablen wieder zurück.
setze [☁ Player 2 v] auf [0]
setze [☁ Player 3 v] auf [0]
setze [☁ Player 4 v] auf [0]
setze [☁ Player 5 v] auf [0]
setze [☁ Player 6 v] auf [0]
setze [☁ Player 7 v] auf [0]
setze [☁ Player 8 v] auf [0]
setze [☁ Player 9 v] auf [0]
setze [☁ Player 10 v] auf [0]
setze [Meine Nummer v] auf [KEINE]
warte (5) Sekunden  // Weil man meistens nicht die beste Internetverbindung hat, müssen 3 oder 5 Sekunden gewartet werden.
falls <(☁ Player 1) = [0]>, dann  // An den Cloud-Variablen, die jetzt noch den Wert 0 haben, wird erkannt, ob noch ein freier Platz da ist.
setze [Meine Nummer v] auf [1]
end
falls <(☁ Player 2) = [0]>, dann
setze [Meine Nummer v] auf [2]
end
falls <(☁ Player 3) = [0]>, dann
setze [Meine Nummer v] auf [3]
end
falls <(☁ Player 4) = [0]>, dann
setze [Meine Nummer v] auf [4]
end
falls <(☁ Player 5) = [0]>, dann
setze [Meine Nummer v] auf [5]
end
falls <(☁ Player 6) = [0]>, dann
setze [Meine Nummer v] auf [6]
end
falls <(☁ Player 7) = [0]>, dann
setze [Meine Nummer v] auf [7]
end
falls <(☁ Player 8) = [0]>, dann
setze [Meine Nummer v] auf [8]
end
falls <(☁ Player 9) = [0]>, dann
setze [Meine Nummer v] auf [9]
end
falls <(☁ Player 10) = [0]>, dann
setze [Meine Nummer v] auf [10]
end
verstecke dich
falls <nicht <(Meine Nummer) = [KEINE]>>, dann 
sende [START!!! v] an alle
sonst
sende [Fehler beim Laden! v] an alle
end
 

Die Variable "Meine Nummer" sagt an, welcher Platz man im onlinem Spiel ist (Player-Nummer) Wenn du diesen Skript programmiert hast, dann kann dein Spiel schon mal sagen, welcher Platz frei für dich ist!

Wenn eine Cloud-Variable den Wert "0" hat, heißt das, dass der PLatz frei ist! Bei aufwändigen onlinen Spielen können die Werte andere Bedeutungen haben!

Beispieltabelle
Cloud-Wert-Zahl Bedeutung
0 freier Platz
3 Spieler ist gestorben
andere Zahlen Position, Punkte, Benutzername, ...

Jetzt hast du einen Stichpunkt erledigt! Los zu den anderen beiden:

  • Cloud-Date schicken
  • Cloud-Daten empfangen

Eigendlich gehören sie zusammen! Dafür braucht man ein Save-Code-System, da ein Cloud-Wert nur aus Zahlen bestehen darf!

  • Cloud Daten schicken

Diesen Stichpunkt wirst du jetzt erledigen!

Definiere Sende die Cloud Daten
setze [Cloud Date v] auf []
Schreibe (Benutzername) dazu
Schreibe (x-position) dazu
Sende (Cloud Date) an Spieler Nummer: (Meine Nummer)
 

Hier werden alle Informationen für der neuen Cloud-Date in Zahlen umgewandelt! Dafür brauchst du auch eine Liste "CODE", die volgende Elemente enthalten muss:

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 0
  11. q
  12. w
  13. e
  14. r
  15. t
  16. z
  17. u
  18. i
  19. o
  20. p
  21. a
  22. s
  23. d
  24. f
  25. g
  26. h
  27. j
  28. k
  29. l
  30. y
  31. x
  32. c
  33. v
  34. b
  35. n
  36. m
  37. .
  38. -
  39. _

Alle Zeichen, die in den Cloud-Informationen sein könnten, müssen in der Liste "CODE" stehen!

Definiere Schreibe (Text) dazu
setze [zeichen v] auf [1]
wiederhole (Länge von (Text)) mal
Setze [Cloud Date v] auf (verbinde (Cloud Date) und (Nummer von (zeichen (zeichen) von (Text)) in [CODE v]
ändere [zeichen v] um [1]
end
Setze [Cloud Date v] auf (verbinde (Cloud Date) und [00])

Definiere Sende (Cloud Date) an Spieler Nummer: (Meine Nummer)
falls <(Meine Nummer) = [1]>, dann 
Setze [☁ P1 v] auf (Cloud Date)
sonst
falls <(Meine Nummer) = [2]>, dann 
Setze [☁ P2 v] auf (Cloud Date)
sonst
falls <(Meine Nummer) = [3]>, dann 
Setze [☁ P3 v] auf (Cloud Date)
sonst
falls <(Meine Nummer) = [4]>, dann 
Setze [☁ P4 v] auf (Cloud Date)
sonst
falls <(Meine Nummer) = [5]>, dann 
Setze [☁ P5 v] auf (Cloud Date)
sonst
falls <(Meine Nummer) = [6]>, dann 
Setze [☁ P6 v] auf (Cloud Date)
sonst
falls <(Meine Nummer) = [7]>, dann 
Setze [☁ P7 v] auf (Cloud Date)
sonst
falls <(Meine Nummer) = [8]>, dann 
Setze [☁ P8 v] auf (Cloud Date)
sonst
falls <(Meine Nummer) = [9]>, dann 
Setze [☁ P9 v] auf (Cloud Date)
sonst
falls <(Meine Nummer) = [10]>, dann 
Setze [☁ P10 v] auf (Cloud Date)
end
end
end
end
end
end
end
end
end
end
 

Jetzt wurden die Informationen für die Cloud-Variable in Zahlen umgewandelt und in die Cloud geschickt. Sie müssen aber auch wieder empfangen werden!

Cookies helfen uns bei der Bereitstellung von Das deutschsprachige Scratch-Wiki. Durch die Nutzung von Das deutschsprachige Scratch-Wiki erklärst du dich damit einverstanden, dass wir Cookies speichern.