Gli ultimi tutorial di sviluppo web
 

HTML gioco Gravity


Alcuni giochi hanno forze che tira il componente di gioco in una sola direzione, come la gravità tira oggetti a terra.




Gravità

Per aggiungere questa funzionalità al nostro costruttore di componenti, prima aggiungere una gravity proprietà, che stabilisce la gravità corrente. Quindi aggiungere un gravitySpeed proprietà, che aumenta ogni volta che aggiorna il telaio:

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 "

Toccato il fondo

Per evitare che il quadrato rosso di cadere per sempre, fermare la caduta quando colpisce la parte inferiore 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 "

accelerare Up

In un gioco, quando si dispone di una forza che si tira giù, si dovrebbe avere un metodo per forzare il componente per accelerare fino.

Attivare una funzione quando un utente fa clic su un pulsante, e rendere il quadrato rosso volare in aria:

Esempio

<script>
function accelerate(n) {
    myGamePiece.gravity = n;
}
</script>

<button onmousedown="accelerate(-0.2)" onmouseup="accelerate(0.1)">ACCELERATE</button>
Prova tu stesso "

Un gioco

Fare un gioco basato su ciò che abbiamo imparato finora: