Zwaartekracht

In deze lesbrief gaan we kijken hoe je een soort zwaartekracht in je spel kunt bouwen. Voor een spel is de methode die we gebruiken prima ook al is het niet precies hoe zwaartkracht werkt.

Het idee dat we gebruiken is als volgt:

  • Als je balletje begint te vallen dan valt het langzaam
  • We maken dus aan het begin de valsnelheid gelijk aan 0
  • Elke keer dat we de draw loop doorlopen zorgen we ervoor dat de valsnelheid iets groter wordt (steeds met dezelfde waarde)
  • Dit getal kun je zien als de versnelling (het getal waarmee de snelheid toeneemt)
  • Vervolgens veranderen we de positie van het balletje steeds door er de valsnelheid bij op te tellen

In code komt dat er als volgt uit te zien:

class Bal {
  constructor(x, y, straal, valSnelheid, versnelling){
    this.x = x;
    this.y = y;
    this.straal = straal;
    this.valSnelheid = valSnelheid;
    this.versnelling = versnelling;
  }

  update() {
    this.valSnelheid += this.versnelling;

    /* botsing tegen de grond */
    if (this.y > innerHeight-20) {
      this.valSnelheid *= -1;
    }

    this.y += this.valSnelheid;
  }

  teken() {
    fill (255,255,0);
    ellipse(this.x, this.y, 10, 10);
  }
}

In actie ziet het er zo uit:

See the Pen zPZvrB by Jurjenh (@jurjenh) on CodePen.

results matching ""

    No results matching ""