Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

Level und Schwierigkeit gestalten

Nach dieser Lektion: Ich kann ein Level als Datentabelle beschreiben und daraus einen Spawn-Plan berechnen.

Lektion, 60 Min.1 BefehlSpieleentwicklungs-Lab: Spielschleife, Schwerkraft und Kollisionen im Browser

Wie beschreibt man ein Level?

Ein Level beschreibt man am besten als Daten: als Tabelle, die sagt, ab welchem Punktestand welche Zahlen gelten. So wird ein Spiel schwerer, ohne dass sich der Code ändert.

Dazu gehört der Spawn-Plan: Er legt fest, wann ein neuer Gegner oder Stern im Spiel erscheint. Beides zusammen formt die Schwierigkeitskurve.

Am Ende dieser Lektion

Notiz

Ich kann ein Level als Datentabelle beschreiben und daraus einen Spawn-Plan berechnen.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
Leveleine Stufe des Spiels mit eigenen ZahlenShower
Spawndas Erscheinen einer neuen Figur im Spiel
Spawn-Plandie Regel, wann Figuren erscheinen
Schwierigkeitskurvewie schnell das Spiel von Stufe zu Stufe schwerer wird
Datentabelleeine Liste von Zeilen mit Zahlen, die der Code liest
Faktoreine Zahl, mit der man einen Grundwert multipliziert0.15 mal 1.4

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Ein Level ist eine Zeile in einer Tabelle

Das Spiel des Labs hat vier Level in einer Liste namens LEVELS. Jede Zeile hat einen Namen, einen Punktestand from und zwei Faktoren: einen für die Schwerkraft und einen für die Häufigkeit der Sterne.

Die Namen im Lab sind englisch: Drizzle, Shower, Storm und Meteors. Das Spiel multipliziert seine Grundwerte mit den Faktoren der Zeile.

Die vier Level des Labs

NameAb PunktestandFaktor SchwerkraftFaktor Rate
Drizzle01,01,0
Shower51,41,25
Storm121,81,6
Meteors202,42,0

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Das Level ist die zuletzt erreichte Zeile

Die Funktion levelFor geht die Tabelle von oben nach unten durch. Sie merkt sich jede Zeile, deren Grenze der Punktestand erreicht hat. Am Ende bleibt die letzte davon übrig.

Bei 4 Punkten gilt noch Drizzle. Bei genau 5 Punkten gilt schon Shower, denn die Grenze gehört zum neuen Level.

Ein Level aus dem Punktestand ablesen

Code: web
<label for="punkte">Punkte</label>
<input id="punkte" type="range" min="0" max="30" value="0">
<p id="anzeige"></p>

Wie oft erscheint ein Stern?

Der Grundwert SPAWN_EVERY ist 50: Alle 50 Bilder erscheint ein Stern. Das Spiel teilt ihn durch den Faktor der Rate und rundet. Ein Stern erscheint, wenn die Bildnummer durch diese Zahl teilbar ist.

Die Schwerkraft des Levels ist GRAVITY mal der Faktor der Schwerkraft. In Python rundet man mit int(x + 0.5) auf die nächste ganze Zahl.

Das Ergebnis der Rechnung für die vier Level

LevelSchwerkraft (0,15 mal Faktor)Abstand (50 geteilt durch Faktor)Gerundet
Drizzle0,15050alle 50 Bilder
Shower0,21040alle 40 Bilder
Storm0,27031,25alle 31 Bilder
Meteors0,36025alle 25 Bilder

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Ein häufiger Fehler

Warnung

Viele schreiben "größer als" statt "größer oder gleich" für die Grenze. Dann gilt bei genau 5 Punkten noch das alte Level. Die Grenze gehört zum neuen Level.

Das Lab rechnet die Level nach

Das Skript levels.py liest die Tabelle LEVELS und die Grundwerte aus game.js. Es berechnet für jedes Level die Schwerkraft und den Abstand der Sterne.

Es gibt englische Wörter aus: den Namen, from score, gravity und a star every ... frames. Die Zahlen sind dieselben wie in der Tabelle oben.

Die Level des Spiels berechnen

Befehl
docker exec jupyter python3 steps/levels.py

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Das Spiel wird schwerer, weil Daten sich ändern

Die erste Zeile lautet levels: 4. Dann folgen vier Zeilen. Drizzle hat die Schwerkraft 0.150 und einen Stern alle 50 Bilder, Meteors hat 0.360 und alle 25.

Der Code des Spiels bleibt gleich. Nur die Zeile der Tabelle ändert sich, und das Spiel wird schneller und dichter.

Über dieses Lab und seinen Quellcode: Spieleentwicklungs-Lab: Spielschleife, Schwerkraft und Kollisionen im Browser

Sie unterrichten eine Gruppe? Weisen Sie dieses Modul Ihren Studierenden zu, mit Handbuch für Lehrende, automatisch geprüften Aufgaben und einem Lab für jede Person.