Aus Das deutschsprachige Scratch-Wiki
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!
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
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 0
- q
- w
- e
- r
- t
- z
- u
- i
- o
- p
- a
- s
- d
- f
- g
- h
- j
- k
- l
- y
- x
- c
- v
- b
- n
- m
- .
- -
- _
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!