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);
}
}
}