En son web geliştirme öğreticiler
 

HTML Oyun Yerçekimi


Bazı oyunlar yerçekimi yere nesneleri çeker gibi, bir yönde oyun bileşeni çeker güçleri var.




yerçekimi

Bizim bileşen kurucusuna bu işlevselliği eklemek için öncelikle bir ekleme gravity akım yerçekimi ayarlar özelliği. Sonra bir ekleme gravitySpeed her şey biz çerçeveyi güncellemek artar özelliği,:

Örnek

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 ;
    }
}
Kendin dene "

Bottom Hit

o oyun alanının dibine vurduğunda düşen durdurmak, sonsuza düşmesini Kırmızı kareyi önlemek için:

Örnek

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

Kendin dene "

Yukarı hızlandırın

Bir oyunda, aşağı çeker bir güce sahip olduğunda, en fazla hızlandırmak için bileşeni zorlamak için bir yöntem olmalıdır.

Birisi bir düğmeye tıkladığında bir işlev Trigger ve kırmızı kare havaya uçurabilir:

Örnek

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

<button onmousedown=" accelerate(-0.2) " onmouseup=" accelerate(0.1) ">ACCELERATE</button>
Kendin dene "

Bir oyun

Şimdiye kadar öğrendiklerini dayalı bir oyun yapın:

Örnek

Kendin dene "