◀ Zurück Weiter ▶ Startseite

Informatik 10. Klasse - Projekt

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