แรงโน้งกราวเกม

ในบางเกมมาก่อนหน้านี้มีกำลังที่ขับดันองค์ประกอบเกมไปทางที่หนึ่ง เช่น ความรุนแรงขับดันวัตถุไปทางดิน


ความรุนแรง

ถ้าคุณต้องการเพิ่มคุณสมบัตินี้ไปยังฟังก์ชันตั้งค่าขององค์ประกอบของเรา โปรดเพิ่มอันดับ gravity 属性,คำนี้กำหนดความรุนแรงของปริมาณ หลังจากนั้นเพิ่มอันดับ gravitySpeed คุณสมบัติ ซึ่งจะเพิ่มขึ้นทุกครั้งที่เราอัพเดทฟ레ม

ตัวอย่าง

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

ลองด้วยตัวเอง

ติดพื้น

เพื่อที่จะป้องกันไม่ให้กล่องสีแดงตกต่ำไปอย่างไม่มีจำกัด คุณต้องหยุดการตกเมื่อมันถึงด้านล่างของพื้นที่เกมส์

ตัวอย่าง

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

ลองด้วยตัวเอง

เร่งความเร็ว

ในเกมส์ ขณะที่มีกำลังดึงลงมายังกล่อง คุณควรออกแบบวิธีที่จะบังคับให้ตัวแบบเร่งความเร็ว

เมื่อมีคนกดปุ่ม จะโต้ตอบฟังก์ชันเพื่อที่ให้กล่องสีแดงบินขึ้นอากาศ:

ตัวอย่าง

<script>
function accelerate(n) {
  myGamePiece.gravity = n;
}
</script>
<button onmousedown="accelerate(-0.2)" onmouseup="accelerate(0.1)">เร่งความเร็ว</button>

ลองด้วยตัวเอง

เกม

สร้างเกมโดยใช้ความรู้ที่เราได้เรียนรู้จนถึงขณะนี้:

ตัวอย่าง

ลองด้วยตัวเอง

คลิกปุ่มเร่งความเร็วเพื่อเริ่มเกม

คุณจะมีชีวิตนานเท่าไหร่? ใช้ปุ่มเร่งความเร็วเพื่ออยู่ในอากาศตลอดเวลา