Level 3: Punkte zählen
Zuletzt aktualisiert
War das hilfreich?
Zuletzt aktualisiert
War das hilfreich?
So, wir haben Tore, einen Ball - aber aktuell zählen wir die Tore noch nicht. Das packen wir in diesem Level an!
Wir erstellen also eine Variable - In dieser merken wir uns jeweils die Tore / Punkte pro Team.
Dazu erstellen wir eine Variable für jedes Team:
Wähle in der seitlichen Leiste Variablen aus.
Füge eine Neue Variable hinzu.
Vergib einen Variablennamen und setze den Variablentyp auf number.
Speichere mit Ok.
Jetzt müssen wir nur noch erkennen, wenn ein Tor geschossen wurde. Genau - da gab's ja was - die "Auslöser". Wir suchen also einen Auslöser, der erkennt, wenn ein Tor geschossen wurde.
Wir fügen 2 Auslöser hinzu:
Einen Wenn Block rechts geklickt wird, um Punkte zurückzusetzen.
Einen Wenn Entität im Block zusammenstößt, um Punkte hochzuzählen und den Ball zu entfernen.
In diesem Fall möchten wir, dass die Punkte des Teams auf "0" gesetzt werden und dass die Bossbar auch zurückgesetzt wird. Dafür verwenden wir folgende Befehle:
Setze die globale Variable zum Punkte Zählen auf 0 zurück.
Führe /bossbar set blue value 0
in Minecraft aus, um die Bossbar wieder auf 0 zu setzen.
Um die Tore zu zählen, haben wir einen Auslöser erstellt, der immer startet, wenn er vom Ball berührt wird.
Die Prozedur für den Zusammenstoß mit einer Entity ist länger und sieht so aus:
Tore sollen nur bei Ball-Kontakt gezählt werden: Als erstes prüft das Programm, ob es sich bei der Entität um einen Ball handelt.
Dazu "holt" es sich den Anzeigenamen der "Berührenden Entity" mit Erhalte den Anzeigenamen von Event/target entity
und prüft, ob er mit dem String Flugball
übereinstimmt (muss übereinstimmen mit dem Objektnamen bei Bild und Ton von Ball erstellen).
Diese beiden Zeilen, die vom Hauptcodeblock abgelöst sind, werden nicht ausgeführt. Sie dienen nur als Hinweis darauf, was wir ausprobiert haben: Bei der (3) wollten wir auf diese beiden Arten testen, ob es sich um einen Ball handelt. Das hat leider nicht funktioniert.
Erhöhe die Punktzahl von Blau:
Dazu holt es sich die aktuelle punktzahl_blau
.
Addiert die Zahl 1 hinzu.
Speichert das Ergebnis mit Setze Global: punktzahl_blau
erneut in der Punktezahl für Blau ab.
Wir führen den Minecraft Befehl für die Bossbar aus - den kennst du bereits aus Level 3.
Dazu kombinieren wir den Text /bossbar set blue value
(Achtung! Leerzeichen am Ende sind wichtig, damit es funktioniert) mit der punktzahl_blau
und runden diese, da Minecraft keine Dezimalzahlen erkennt.
Wir geben dem Spieler, der am nächsten steht (@p
), ein neues Spawn-Ei:
/give @p alpaka_ball:flugball_spawn_egg
Wenn ein Tor fällt, muss man das natürlich auch hören: Mit diesem Befehl können wir einen Ton abspielen lassen, wenn ein Tor geschossen wurde. Hier z.B. der gleiche Ton, den man hört, wenn man XP aufsammelt: entity.experience_orb.pickup.
Am Schluss wollen wir den Ball "los werden" - er soll verschwinden und mit einem neuen Ball geht es weiter.
Dazu verwenden wir am besten den Befehl Zerstöre
.
Achte darauf, dass die Minecraft-Befehle kill @e[...]
, tp @e[...] ~ -500 ~
und MCreator Lösche
nicht funktionieren.
Vergiss nicht zu speichern ;)
Geschafft! Tore zählen - ich habe fertig!
Jetzt kannst du im Spiel testen. Wenn ein Ball in einen blauen Torblock fliegt, sollte ein Ton erklingen, die Punktzahl in der Bossbar erhöht werden, der Ball verschwinden und du erhältst ein neues Spawn-Ei.
Die Variable punktezahl_orange
für Orange haben wir bereits erstellt. Jetzt fehlen nur noch die passenden Prozeduren, die wir vom Team Blau kopieren können.
Gehe zum Arbeitsplatz.
Rechtsklicke auf die Prozedur und wähle Mod-Element duplizieren.
Benenne die neuen Prozeduren um, z.B. ...Orange... statt ...Blau...
Jetzt musst du natürlich alle Stellen, an denen "Blau" steht, durch "Orange" ersetzen, sowohl in den beiden Codedateien als auch im Auslöser:
Vergiss nicht, auch den Auslöser anzupassen!