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 online Spiele

Für online Spiele braucht man Cloud-Variablen! So sieht eine Cloud-Variable aus:

 (☁ Player 1)
 

Wenn die Cloud-Variable einen neuen Wert bekommt, ist dieser Wert in der Cloud gespeichert und jeder, der das Projekt nun öffnet, bekommt auch diesen Wert. Damit könnte man Online Spiele programmieren!

Beispiel

Ein Beispiel: Von einem Onlinen Spiel hat jemand diesen Wert in die Cloud geschickt: 9999999949.0355139000999999979679000999999981549000909000930900091527142828271030251490009

Das ist ein einfaches onlines Spiel: Es macht zwar noch nicht so viel Spaß, aber es war viel Arbeit!




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.