Informatik

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 Starter

In 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

  1. Ladet das Bugs-Starter-Projekt herunter.
  2. Bearbeitet die folgenden Fragen zum Quelltext:
    1. Gebt die Quelltextzeilen an, in denen die Methode veraendereDistanz der BunnyHop-Klasse aufgerufen wird.
    2. Beschreibt in eigenen Worten was die Methode zuruecksetzen der BunnyHop-Klasse tut.
    3. Beschreibt, was in der for-Schleife im Konstruktor der Level-Klasse passiert.
    4. Erklärt was passieren muss, damit ein Objekt der Klasse Ende zu sehen ist.
  3. Schaut in den restlichen Quelltext des Bugs-Starter-Projekts und sammelt Quelltextzeilen, die ihr nicht nachvollziehen könnt.
  4. Spielt das Spiel und sammelt auf eurem Kanbandboard (siehe Taskcards eurer Gruppe) Ideen, die ihr umsetzen möchtet.
Ideen sammeln

Teilbare URL erstellen

Abschnitte auswählen