Informatik

Das Startgerüst

Hier beginnt dein Spiel. Eine Figur läuft durch einen Raum, stößt an Steine und Kisten und sammelt Münzen. Starte das Programm mit ▶ und steuere die Figur mit den Pfeiltasten. Über den Knopf oben rechts in der Ausgabe spielst du im Vollbild.

Dein Code wird in diesem Browser gespeichert, nicht im Internet. Auf einem anderen Rechner, in einem anderen Browser oder nach dem Löschen der Browserdaten siehst du wieder das Startgerüst. Übertrage deinen Stand deshalb regelmäßig in dein Projekt auf dem Rechner (siehe Auf deinem Rechner).

Wie es gemacht ist

Klasse Wofür
Main der Startpunkt. Hier entsteht das Fenster, 768 × 432 Pixel groß.
Welt die Bühne. Sie baut den Raum aus dem PLAN auf und zählt die Münzen.
Spieler die Figur. Sie läuft, solange eine Pfeiltaste gedrückt ist, und geht zurück, wenn sie eine Wand berührt.
Muenze dreht sich, bis sie eingesammelt wird.
Kachel ein Feld des Raums. Jede Kachel schneidet ihr Bild aus einem größeren Kachelbild aus.
Gras Boden, über den man laufen kann.
Wand alles, wogegen der Spieler stößt. Stein und Kiste sind Wände.
classDiagram
    Sprite <|-- Kachel
    Kachel <|-- Gras
    Kachel <|-- Wand
    Wand <|-- Stein
    Wand <|-- Kiste
    AnimatedSprite <|-- Spieler
    AnimatedSprite <|-- Muenze
    Stage <|-- Welt
    Spieler --> Welt : welt

Der Raum ist ein Plan aus Zeichen

Der Raum steht in Welt als Feld von Zeichenketten. Jede Zeichenkette ist eine Zeile, jedes Zeichen eine Kachel:

Zeichen Kachel
# Stein
. Gras
K Kiste
M Münze auf Gras
S Startplatz des Spielers

Der Raum ist 16 Kacheln breit und 9 hoch. Eine Kachel ist im Bild 16 × 16 Pixel groß und wird dreifach vergrößert, auf der Bühne also 48 × 48 Pixel.

Grafiken aus einem großen Bild

Die Kacheln liegen nicht einzeln vor, sondern nebeneinander in einem großen Kachelbild. addCostume("kachel", pBild, pX, pY, 16, 16) schneidet ein Stück von 16 × 16 Pixeln aus, dessen linke obere Ecke bei (pX, pY) liegt. Die Figur macht es genauso: Im Bild sprite-sheet.png steht jede Blickrichtung in einer Spalte, die Schritte untereinander. addAnimation macht daraus eine Animation.

Leg los

Aufgabe 1: dein Raum

Ändere den PLAN. Baue Gänge, Nischen und Verstecke für die Münzen. Jede Zeile muss genau 16 Zeichen lang bleiben, und es muss genau neun Zeilen geben.

Aufgabe 2: deine Figur

Im Ordner assets/actor/character/ liegen über 90 Figuren, jede mit einer Datei sprite-sheet.png im selben Aufbau. Tausche den Jungen gegen eine andere Figur, zum Beispiel ninja-green, knight oder princess.

Tipp zu Aufgabe 2

Der Pfad steht in Spieler in der Konstanten BILD. Ersetze darin boy durch den Namen eines anderen Ordners.

Aufgabe 3: eine neue Kachel

Füge eine neue Wand hinzu, zum Beispiel einen Busch oder einen Brunnen. Schreibe dafür eine Klasse, die von Wand erbt, und gib ihr ein eigenes Zeichen im PLAN.

Die Kachelbilder liegen in assets/backgrounds/tilesets/. Öffne zum Beispiel tileset-nature.png und suche dir eine Kachel aus. Ihre linke obere Ecke liegt immer auf einem Vielfachen von 16.

Tipp zu Aufgabe 3

Die Klasse Kiste ist ein gutes Vorbild. Kopiere sie, gib der Kopie einen neuen Namen und ändere das Kachelbild und die Ecke. In Welt kommt dann ein weiterer Fall dazu:

} else if (zeichen == 'B') {
    this.setze(new Busch(), s, z);
}

Aufgabe 4: ein anderer Klang

Die Klänge liegen in assets/audio/sounds/, nach Art sortiert. Gib dem Einsammeln einen anderen Klang. In assets/audio/musics/ liegen außerdem zehn Musikstücke für den Hintergrund.

Auf deinem Rechner

Das Projekt läuft auch ohne Browser, in jeder Java-Entwicklungsumgebung. Du brauchst ein JDK 25, zum Beispiel mit VS Code oder BlueJ.

Projekt: Spielwerkstatt

Entpacke das Archiv und starte es aus dem Projektordner heraus:

java --enable-native-access=ALL-UNNAMED -classpath "+libs/scratch-5.4.0-nrw-all.jar" Main.java

Im Archiv liegt alles, was das Projekt braucht:

Was Wofür
deine Klassen derselbe Quelltext wie hier, mit einer import-Zeile am Anfang. Die Entwicklungsumgebung im Browser kennt die Klassen schon.
assets/ Grafiken und Klänge
+libs/scratch-5.4.0-nrw-all.jar Scratch for Java. In dieser Fassung liefern find, getAll und getTouchingSprites eine List der Abiturklassen. BlueJ findet die Bibliothek im Ordner +libs von selbst.
List.java, Queue.java, Stack.java, BinaryTree.java, BinarySearchTree.java, ComparableContent.java, Graph.java, Vertex.java, Edge.java die Abiturklassen des Landes NRW, unverändert. Im Browser sind sie schon eingebaut.

Wenn du auf dem Rechner weiterarbeitest, kopiere deine geänderten Klassen aus dem Browser in das Projekt. Die import-Zeile import org.openpatch.scratch.*; brauchst du dort in jeder Datei, die Klassen von Scratch for Java benutzt.

Das Startgerüst

Teilbare URL erstellen

Abschnitte auswählen