Garis Gravitasi Permainan

有些游戏中存在将游戏组件拉向一个方向的力,例如重力将物体拉向地面。


重力

如需将此特性添加到我们的组件构造函数中,请首先添加一个 gravity 属性,该属性设置当前的重力。然后添加一个 gravitySpeed Properti, yang akan bertambah setiap kali kami mengupdate bingkai:

Contoh

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

Coba sendiri

Ketika mendarat

Untuk mencegah buah merah jatuh kekal, kita harus menghentikan jatuhnya saat buah merah mencapai dasar area permainan:

Contoh

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

Coba sendiri

Tingkaskan

Dalam permainan, ketika ada kuasa yang menarik buah merah turun, Anda seharusnya merancang metode untuk memaksa komponen untuk bergerak dengan kecepatan yang tinggi.

Ketika seseorang mengklik tombol, aktifkan fungsi yang mengirimkan buah merah ke udara:

Contoh

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

Coba sendiri

Satu permainan

Buat permainan dengan mengikuti pengalaman yang kita pelajari sejauh ini:

Contoh

Coba sendiri

Klik tombol pelanggar untuk memulai permainan.

Berapa lama anda dapat hidup? Gunakan tombol pelanggar untuk tetap di udara.