O‘yin harakati

O‘yin aylantirish bobida tushuntirilgan komponentlarni chizishning yangi usuli tufayli harakatlar yanada moslashuvchan bo‘ladi.


ULASHISH

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!