Beberapa game memiliki kekuatan yang menarik komponen permainan dalam satu arah, seperti gravitasi menarik benda-benda ke tanah.
Gravitasi
Untuk menambahkan fungsi ini untuk konstruktor komponen kami, pertama kali menambahkan gravity
properti, yang menetapkan gravitasi saat. Kemudian menambahkan gravitySpeed
properti, yang meningkatkan setiap kali kita update frame:
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 ;
}
}
Cobalah sendiri " Hit Bawah
Untuk mencegah lapangan merah dari jatuh selamanya, menghentikan jatuh ketika hits bagian bawah 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;
}
}
Cobalah sendiri " mempercepat Up
Dalam permainan, ketika Anda memiliki kekuatan yang menarik Anda ke bawah, Anda harus memiliki metode untuk memaksa komponen untuk mempercepat up.
Memicu fungsi ketika seseorang mengklik tombol, dan membuat lapangan merah terbang di udara:
Contoh
<script>function accelerate(n) {
myGamePiece.gravity = n;
}</script>
<button onmousedown="accelerate(-0.2)"
onmouseup="accelerate(0.1)">ACCELERATE</button>
Cobalah sendiri " Permainan
Membuat game berdasarkan apa yang telah kita pelajari sejauh ini: