O‘yin harakati
O‘yin aylantirish bobida tushuntirilgan komponentlarni chizishning yangi usuli tufayli harakatlar yanada moslashuvchan bo‘ladi.
Obyektlarni qanday harakatlantirish mumkin?
component konstruktoriga komponentning joriy tezligini ifodalovchi speed xususiyatini qo‘shing.
Shuningdek, komponent pozitsiyasini speed va angle asosida hisoblash uchun newPos() metodiga ba’zi o‘zgartirishlar kiriting.
Standart holatda komponentlar yuqoriga qaragan bo‘ladi va speed xususiyatini 1 ga o‘rnatsangiz, komponent oldinga harakatlana boshlaydi.
Misol
function component(width, height, color, x, y) {
this.gamearea = gamearea;
this.width = width;
this.height = height;
this.angle = 0;
this.speed = 1;
this.x = x;
this.y = y;
this.update = function() {
ctx = myGameArea.context;
ctx.save();
ctx.translate(this.x, this.y);
ctx.rotate(this.angle);
ctx.fillStyle = color;
ctx.fillRect(this.width / -2, this.height / -2, this.width, this.height);
ctx.restore();
}
this.newPos = function() {
this.x += this.speed * Math.sin(this.angle);
this.y -= this.speed * Math.cos(this.angle);
}
}
O‘zingiz sinab ko‘ring »
Burilish
Shuningdek, chapga va o‘ngga burila olishni ham xohlaymiz. Joriy harakat qiymatini, ya’ni aylanish burchagini bildiruvchi moveAngle deb nomlangan yangi xususiyat yarating. newPos() metodida angle’ni moveAngle xususiyati asosida hisoblang:
Misol
moveangle xususiyatini 1 ga o‘rnating va nima bo‘lishini kuzating:
function component(width, height, color, x, y) {
this.width = width;
this.height = height;
this.angle = 0;
this.moveAngle = 1;
this.speed = 1;
this.x = x;
this.y = y;
this.update = function() {
ctx = myGameArea.context;
ctx.save();
ctx.translate(this.x, this.y);
ctx.rotate(this.angle);
ctx.fillStyle = color;
ctx.fillRect(this.width / -2, this.height / -2, this.width, this.height);
ctx.restore();
}
this.newPos = function() {
this.angle += this.moveAngle * Math.PI / 180;
this.x += this.speed * Math.sin(this.angle);
this.y -= this.speed * Math.cos(this.angle);
}
}
O‘zingiz sinab ko‘ring »
Klaviaturadan foydalanish
Klaviaturadan foydalanganda qizil kvadrat qanday harakatlanadi? Qizil kvadrat yuqoriga-pastga va u yondan bu yonga harakatlanish o‘rniga "yuqoriga" strelkasini bosganingizda oldinga harakatlanadi, chap va o‘ng strelkalarni bosganingizda esa chapga va o‘ngga buriladi.
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
