Gravità di gioco

In alcuni giochi esiste una forza che spinge i componenti del gioco in una direzione, ad esempio la gravità che spinge gli oggetti verso il suolo.


gravità

Se desideri aggiungere questa proprietà alla funzione costruttore del nostro componente, aggiungi prima un gravity Proprietà, che imposta la gravità attuale. Poi aggiungi un gravitySpeed Proprietà, che aumentano ogni volta che aggiorniamo il frame:

Esempio

function component(width, height, color, x, y, type) {
  this.type = type;
  this.width = width;
  this.height = height;
  this.x = x;
  this.y = y;
  this.speedX = 0;
  this.speedY = 0;
  this.gravity = 0.05;
  this.gravitySpeed = 0;
  this.update = function() {
    ctx = myGameArea.context;
    ctx.fillStyle = color;
    ctx.fillRect(this.x, this.y, this.width, this.height);
  }
  this.newPos = function() {
    this.gravitySpeed += this.gravity;
    this.x += this.speedX;
    this.y += this.speedY + this.gravitySpeed;
  }
}

Prova tu stesso

Atterraggio

Per prevenire che il quadrato rosso cada per sempre, dobbiamo fermare la caduta quando raggiunge il fondo dell'area di gioco:

Esempio

  this.newPos = function() {
    this.gravitySpeed += this.gravity;
    this.x += this.speedX;
    this.y += this.speedY + this.gravitySpeed;
    this.hitBottom();
  }
  this.hitBottom = function() {
    var rockbottom = myGameArea.canvas.height - this.height;
    if (this.y > rockbottom) {
      this.y = rockbottom;
    }
  }

Prova tu stesso

Accelerazione

Nel gioco, quando una forza tira giù il quadrato, dovresti progettare un metodo per costringere il componente a accelerare.

Quando qualcuno clicca sul pulsante, viene attivata una funzione che fa volare il quadrato rosso nel cielo:

Esempio

<script>
function accelerate(n) {
  myGamePiece.gravity = n;
}
</script>
<button onmousedown="accelerate(-0.2)" onmouseup="accelerate(0.1)">Accelerazione</button>

Prova tu stesso

Un gioco

Crea un gioco basandoti su ciò che abbiamo appreso finora:

Esempio

Prova tu stesso

Clicca sul pulsante di accelerazione per iniziare il gioco.

Quanto puoi vivere? Usa il pulsante di accelerazione per rimanere in aria.