O‘yin tortishish kuchi
Ba’zi o‘yinlarda o‘yin komponentini bir yo‘nalishga tortadigan kuchlar bo‘ladi — xuddi tortishish kuchi jismlarni yerga tortgani kabi.
Tortishish kuchi
Bu funksionallikni komponent konstruktorimizga qo‘shish uchun avval joriy tortishish kuchini belgilaydigan gravity xususiyatini qo‘shing. So‘ngra kadrni har safar yangilaganimizda ortib boradigan gravitySpeed xususiyatini qo‘shing:
Misol
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;
}
}
O‘zingiz sinab ko‘ring »
Pastki chegaraga yetish
Qizil kvadrat cheksiz qulab tushmasligi uchun u o‘yin maydonining pastki qismiga yetganda qulashni to‘xtating:
Misol
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;
}
}
O‘zingiz sinab ko‘ring »
Yuqoriga tezlanish
O‘yinda sizni pastga tortadigan kuch bo‘lsa, komponentni yuqoriga tezlanishga majbur qiladigan metod ham bo‘lishi kerak.
Kimdir tugmani bosganda funksiyani ishga tushiring va qizil kvadratni havoga ko‘tarilishga majbur qiling:
Misol
<script>
function accelerate(n) {
myGamePiece.gravity = n;
}
</script>
<button onmousedown="accelerate(-0.2)" onmouseup="accelerate(0.1)">ACCELERATE</button>
O‘zingiz sinab ko‘ring »
O‘yin
Hozirgacha o‘rganganlarimiz asosida o‘yin yarating:
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
