Beispiel - Breakout - 2. Arbeitszyklus
Projektboard

Projekttagebuch

Aktuelle Implementierung
Verbesserung mit Hilfe der KI (LLM)
Warum wird der schläger nicht bewegt?class Spiel extends Actor { ...
Der Schläger bewegt sich in deinem Code nicht, weil du die Variable schläger
nur lokal im Konstruktor Spiel()
erzeugst – sie existiert nicht außerhalb davon.
Was passiert in deinem Code?
In diesem Abschnitt:Schläger schläger = new Schläger();
erstellst du eine neue lokale Variable, die nur innerhalb des Konstruktors Spiel()
existiert. Diese lokale Variable wird nach dem Konstruktor vergessen, und deine act()
-Methode kennt diese schläger
-Variable gar nicht.
Lösung: schläger als Instanzvariable definieren
Du musst schläger
als Instanzvariable in deiner Klasse Spiel
definieren, sodass du sie sowohl im Konstruktor als auch in der act()
-Methode verwenden kannst.
Korrigierte Version:
class Spiel extends Actor
{
Schläger schläger; // Instanzvariable
Spiel()
{
schläger = new Schläger();
Ball ball = new Ball();
//Start
schläger.setFillColor(Color.blue);
schläger.setHeight(40);
schläger.setWidth(120);
schläger.moveTo(400, 960);
}
void act()
{
if(isKeyDown('A'))
{
schläger.moveLeft(10);
}
if(isKeyDown('D'))
{
schläger.moveRight(10);
}
}
}