Oyun Gravite

Bazı oyunlarda, oyun bileşenlerini bir yöne çekmek için bir güç bulunmaktadır, örneğin,万有引力将物体拉向地面。


重力

Bu özelliği bileşen inşa fonksiyonumuza eklemek için öncelikle bir gravity Özellik, bu özellik mevcut万有引力的设置。Ardından bir gravitySpeed Özellikler, her zaman güncellediğimizde artar:

Örnekler

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.güncelle = function() {
    ctx = myGameArea.context;
    ctx.fillStyle = color;
    ctx.fillRect(this.x, this.y, this.width, this.height);
  }
  this.yeniPozisyon = function() {
    this.gravitySpeed += this.gravity;
    this.x += this.speedX;
    this.y += this.speedY + this.gravitySpeed;
  }
}

Kendi kendine deneyin

Düşme

Kırmızı küpün sonsuza kadar düşmesini önlemek için, oyun alanının altına ulaştığında düşüşünü durdurmalıyız:

Örnekler

  this.yeniPozisyon = function() {
    this.gravitySpeed += this.gravity;
    this.x += this.speedX;
    this.y += this.speedY + this.gravitySpeed;
    this.düştüğünüKontrolEt();
  }
  this.düştüğünüKontrolEt = function() {
    var taban = myGameArea.canvas.height - this.height;
    if (this.y > taban) {
      this.y = taban;
    }
  }

Kendi kendine deneyin

Hızlandır

Oyunda, bir kuvvetin küpü aşağıya çektiği zaman, komponentin hızlandırılmasını sağlayacak bir yöntem tasarlamalısınız.

Butona tıklandığında, kırmızı küpün havaya fırlamasını sağlayan bir fonksiyon tetiklenir:

Örnekler

<script>
function hızlandır(n) {
  myGamePiece.gravity = n;
}
</script>
<button tıklanıldığında="hızlandır(-0.2)" serbest bırakıldığında="hızlandır(0.1)">Hızlandır</button>

Kendi kendine deneyin

Bir oyun

Bugüne kadar öğrendiğimiz bilgileri kullanarak bir oyun yapın:

Örnekler

Kendi kendine deneyin

Oyunu başlatmak için hızlandırma düğmesine tıklayın.

Ne kadar yaşayabilirim? Havaunchede kalmak için hızlandırma düğmesini kullanın.