De bal als game

In de vorige lessen hebben we die bal laten bewegen. Eerst met x en y als variabelen. In de vorige les hebben we de PVector class gebruikt om de snelheid en locatie aan te geven. Nu gaan we een eigen class maken om de bal om te bouwen tot het klassieke spel ‘Pong’.

paddle_rechts

De ‘pad’ class regelt het stuiteren, maar als speler moet je dan wel die ‘pad’ naar boven of beneden sturen met de toetsen. Laten we eerst maar eens naar de code van die class kijken, om te zien hoe die werkt.


class Paddle {
 int x;
 int y = 10;
 int h = 50;
 int w = 10;;
 color col;
 char upKey;
 char downKey;
 int step = 5;

  Paddle (int myX, char myUpKey, char myDownKey, color myCol) {
    x = myX;
    y = 0;
    upKey = myUpKey;
    downKey = myDownKey;
    col = myCol;
  }

void moveUp() {
   if ( keyPressed &&  key == upKey) {
     y = y - step;
     // print("up\n");
   }
}

void moveDown() {
  if ( keyPressed && key == downKey ) {
     y = y + step;
   }
}
void display() {
  fill(col);
  rect(x,y,w,h);
}
}

De class Paddle begint met 8 variabelen die soms wel en soms niet een beginwaarde krijgen: x,y, h,w,col, upKey, downKey, step. Elk hebben ze een eigen betekenis. Daar komen we straks wel op.

Daaronder is de constructor: Paddle(…) zelf. Zoek m even op! Elk object dat we in deze class gaan aanmaken, maken we met deze constructor:


Paddle (int myX, char myUpKey, char myDownKey, color myCol).  

Deze heeft een aantal parameters: die gebruiken we om de class flexibel te maken. De x kunnen we aanpassen zodat we m lekker rechts en links kunnen neerzetten met dezelfde code.

Daarna komen er 3 methods: dat zijn eigenlijk functies binnen een class. In Paddle zijn het moveUp, moveDown en display(). Logisch wat ze doen.

De class wordt pas echt gebruikt als we de constructor aanroepen:


rightPaddle = new Paddle(630,'o','l',green);

De o en l slaan op de toetsen die je gebruikt voor de besturing. 630 is de x. Green, wat denk je zelf!

Opdracht

De opdracht, in het kort, is dat jij nu de leftPaddle gaat maken. De rightPaddle krijg je helemaal al kado. Gebruik de hele code in deze download.

Opdracht (1)

Maak ook een leftPaddle en geef m een x van 0.

Opdracht (2)

Uncomment het blok code. Kijk even wat je denkt dat het doet!

Opdracht (3)

Display de leftPaddle.

Opdracht (4)

Zorg voor de up & down besturing van je leftPaddle.

Vervolg Opdracht

Ben je al klaar, experimenteer met de constructor.   Maak nog een aantal paddles die je in het midden ergens zet en met andere toetsen bestuurt. Zorg voor display, bounce en move.