Bu bizning o'yin yaratish sayohatimizning eng yuqori cho'qqisi! Bugun portal ostonasida ulkan Kiber-Dron (Boss) paydo bo'ladi. Biz dushmanning jon ko'rsatkichi (Boss HP Bar), lazer hujumlari, g'alaba mushakbozligi (Victory Screen) va o'yinni to'liq yakunlovchi Game Loop tizimini quramiz!
Boss — bu o'quvchining 16 dars davomida o'rgangan barcha ko'nikmalarini (tez yugurish, chaqqon sakrash va aniq mo'ljal) sinovdan o'tkazuvchi bosh qahramondir.
const boss = {
x: 600,
y: 120,
width: 64,
height: 48,
speedX: 2.5,
hp: 3, // 3 ta jon
maxHp: 3,
isAlive: true,
laserCooldown: 0
};
Dron ekrandan chiqib ketmasligi uchun uning tezlik yo'nalishini teskarisiga o'zgartiramiz:
boss.x += boss.speedX;
// Chegaraga yetganda orqaga qaytish:
if (boss.x > 700 || boss.x < 450) {
boss.speedX = -boss.speedX;
}
function drawBossHP() {
if (!boss.isAlive) return;
// Qora ramka
ctx.fillStyle = "#040812";
ctx.fillRect(250, 15, 260, 16);
// Qizil to'ldirish (qolgan jon foizi bo'yicha)
const hpPercent = boss.hp / boss.maxHp;
ctx.fillStyle = "#ff2a5f";
ctx.fillRect(252, 17, 256 * hpPercent, 12);
// Yozuv
ctx.fillStyle = "#FFFFFF";
ctx.font = "bold 11px monospace";
ctx.fillText("⚡ MEGA DRON BOSS", 320, 27);
}
Qahramon boss ustiga sakraganda, dron bir lahzaga oppoq bo'lib miltillaydi va uning jon ko'rsatkichi kamayadi! O'yinchi o'z zarbasi o'tganini darhol his qiladi.
Agar qahramon yuqoridan pastga sakrab tushayotgan bo'lsa (vy > 0) va dronning tepasiga tegsa — boss -1 jon yo'qotadi, qahramon esa balandga sakrab ketadi!
if (checkOverlap(player, boss)) {
if (player.vy > 0 && player.y < boss.y + 10) {
// Tepasidan bosdi!
boss.hp--;
player.vy = -10; // Balandga sakrab ketish (Rebound)
playHitSound();
if (boss.hp <= 0) {
boss.isAlive = false;
triggerVictory(); // G'ALABA!
}
} else {
// Yonidan tegib ketdi (Qahramon jon yo'qotadi)
playerTakeDamage();
}
}
function triggerVictory() {
gameWon = true;
document.getElementById('overlay-victory').hidden = false;
document.getElementById('stat-time').textContent = (60 - timeLeft) + "s";
document.getElementById('stat-coins').textContent = score + " pts";
startFireworks(); // Mushakbozlikni yoqish!
}
Yaxshi o'yin o'yinchini uzoq kuttirmaydi. [R] tugmasi yoki ekrandagi tugma bosilishi bilan qahramon to'la jon bilan darhol startga qaytadi!
requestAnimationFrame(gameLoop) funksiyasi bu zanjirni soniyasiga 60 marta takrorlab, ko'zni quvontiruvchi silliq o'yin harakatini yaratadi!
VS Code dagi 'Go Live' tugmasi o'yinni istalgan noutbukda bir zumda ochib beradi.
O'yinni Vercel orqali bepul internetga joylashtirib, uning havolasi va QR kodini ota-onangizga yoki do'stlaringizga yuborishingiz mumkin!
Yangilangan Kiber-Yuguruvchi 4.0 da quyidagilarni bajaring:
Ushbu sertifikat o'quvchi 2D platformer fizikasi, Canvas boshqaruvi, to'qnashuvlar, kristallar va Boss jangini JavaScript da noldan yaratganini tasdiqlaydi!