Ideen sammeln
Ihr habt jetzt die Grundlagen der Scratch for Java Bibliothek und der Spieleentwicklung gelernt. Nun sollt ihr eure eigenen Ideen in das Spiel einbringen. Vielleicht wollt ihr:
- neue Grafiken
- verschiedene Feinde
- Power Ups
- Lücken im Boden
- ...
Damit alle auf dem gleichen Stand sind, könnt ihr das Bugs-Starter-Projekt benutzen.
⏬Bugs StarterIn dem Bug-Starter-Projekte sind noch weitere Features implementiert, die euch auch zur Inspiration dienen sollen. Das folgende Klassendiagram zeigt die Klassen und Beziehungen im Bugs-Starter-Projekt.
classDiagram direction RL Window <|-- BunnyHop Stage <|-- Level Stage <|-- Ende AnimatedSprite <|-- Sprite Sprite <|-- Plattform Sprite <|-- Spieler Sprite <|-- StachelFeind class BunnyHop { -distanz: int +BunnyHop() +zuruecksetzen() +getDistanz(): int +veraendereDistanz(wert: int) } class Timer { +afterMillis(millis: int) +forMillis(millis: int) } class Stage { +add(d: Drawable) +display(text: String) +setColor(r: int, g: int, b: int) +addTimer(name: String) +getTimer(name: String) } class AnimatedSprite { +addAnimation(name: string, muster: String, frames: int) +playAnimation(name: string) } class Sprite { +changeX(wert: float) +changeY(wert: float) +getX(): float +getY(): float +setX(x: float) +setY(y: float) +getWidth(): int +getHeight(): int +isTouchingSprite(d: Drawable) +isTouchingSprite(class: Class) +addCostume(name: String, pfad: String) +setHitbox(x1: int, y1: int, x2: int, y2: int, ...) } class Text { +Text() +setPosition(x: int, y: int) +showText(text: String) } class Window { +Window(breite: int, hoehe: int, ordner: String) +setDebug(v: boolean) +addStage(name: String, pStage: Stage) +removeStage(name: String) +switchStage(name: String) } Level --> Spieler: -bugs Level --> BunnyHop: -spiel Level --> StachelFeind: -ingo Level --> Plattform: -letzte class Level { +Level(pSpiel: BunnyHop) +getLetzte(): Plattform +setLetzte(pLetzte: Plattform) +run() } Ende --> Text: -text Ende --> BunnyHop: -spiel class Ende { +whenKeyPressed(code: int) +run() } Plattform --> Spieler: -spieler Plattform --> Level: level class Plattform { -istKaputt: boolean -beruehrt: boolean +Plattform(pLevel: Level, pSpieler: Spieler, pIstKaputt: boolean) +beruehren() +run() } class Spieler { -springt: boolean -faellt: boolean -verloren: boolean -sprungGeschwindigkeit: float -sprungHoehe: float -fallGeschwindigkeit: float +Spieler() +verletzten() +hatVerloren() +springen() +graviation() +run() } StachelFeind --> Spieler: -spieler class StachelFeind { -fallGeschwndigkeit: int +StachelFeind(pSpieler: Spieler) +run() }
Aufgaben
Programmverständnis
- Ladet das Bugs-Starter-Projekt herunter.
- Bearbeitet die folgenden Fragen zum Quelltext:
- Gebt die Quelltextzeilen an, in denen die Methode
veraendereDistanz
der BunnyHop-Klasse aufgerufen wird. - Beschreibt in eigenen Worten was die Methode
zuruecksetzen
der BunnyHop-Klasse tut. - Beschreibt, was in der for-Schleife im Konstruktor der Level-Klasse passiert.
- Erklärt was passieren muss, damit ein Objekt der Klasse Ende zu sehen ist.
- Gebt die Quelltextzeilen an, in denen die Methode
- Schaut in den restlichen Quelltext des Bugs-Starter-Projekts und sammelt Quelltextzeilen, die ihr nicht nachvollziehen könnt.
- Spielt das Spiel und sammelt auf eurem Kanbandboard (siehe Taskcards eurer Gruppe) Ideen, die ihr umsetzen möchtet.