This commit is contained in:
JERRY F 2025-12-07 22:40:54 +07:00
parent 06ffdaaf7d
commit 0bec0e3f83
2 changed files with 320 additions and 330 deletions

View File

@ -20,20 +20,20 @@
const persiapan = document.getElementById("start");
//generate gambar external
var KepalaUlarImage = new Image();
KepalaUlarImage.src = "image/KepalaHorizontalKanan.png";
var KepalAtas = new Image();
KepalAtas.src = "image/KepalaVertikalAtas.png";
var KepalaBawah = new Image();
KepalaBawah.src = "image/KepalaVertikalBawah.png";
var KepalaKiri = new Image();
KepalaKiri.src = "image/KepalaHorizontalKiri.png";
var KepalaKanan = new Image();
KepalaKanan.src = "image/KepalaHorizontalKanan.png";
var KepalaKeKanan = new Image();
KepalaKeKanan.src = "image/KepalaHorizontalKanan.png";
var KepalaKeAtas = new Image();
KepalaKeAtas.src = "image/KepalaVertikalAtas.png";
var KepalaKeKiri = new Image();
KepalaKeKiri.src = "image/KepalaVertikalBawah.png";
var KepalaKeBawah = new Image();
KepalaKeBawah.src = "image/KepalaHorizontalKiri.png";
// ↑ kepala ular
var BadanUlarImage = new Image();
BadanUlarImage.src = "image/BadanVertikal.png";
var BadanHori = new Image();
BadanHori.src = "image/BadanHorizontal.png";
var BadanVerti = new Image();
BadanVerti.src = "image/BadanVertical.png";
// ↑ badan ular
var ApelImage = new Image();
@ -49,7 +49,7 @@
RandomizeApel();
//mastiin gambar external generate dulu sebelum game start
KepalaUlarImage.onload = function () {
KepalaKeKanan.onload = function () {
function gameLoop() {}
};
@ -66,15 +66,11 @@
}
//buat ngatur batu spwan apa ga nanti
document
.getElementById("mode-normal")
.addEventListener("click", function () {
document.getElementById("mode-normal").addEventListener("click", function () {
StartingGame(false);
});
document
.getElementById("mode-tambahan")
.addEventListener("click", function () {
document.getElementById("mode-tambahan").addEventListener("click", function () {
StartingGame(true);
});
@ -177,12 +173,7 @@
score = amount > 0 ? score + amount : 0;
highscore = score > highscore ? score : highscore;
Text.innerHTML =
"Score: " +
score +
"<br>Highscore: " +
highscore +
"<br>Speed: " +
speed;
"Score: " + score + "<br>Highscore: " + highscore + "<br>Speed: " + speed;
PenambahanTembok();
}
@ -217,33 +208,33 @@
var posisiKepalaImage;
if (Ular.dx === grid) {
// KANAN
posisiKepalaImage = KepalaKanan;
posisiKepalaImage = KepalaKeKanan;
} else if (Ular.dx === -grid) {
// KIRI
posisiKepalaImage = KepalaKiri;
posisiKepalaImage = KepalaKeKiri;
} else if (Ular.dy === -grid) {
// ATAS
posisiKepalaImage = KepalAtas;
posisiKepalaImage = KepalaKeBawah;
} else if (Ular.dy === grid) {
// BAWAH
posisiKepalaImage = KepalaBawah;
posisiKepalaImage = KepalaKeAtas;
} else {
// Default, misalnya saat game baru mulai (dx=grid, dy=0, atau default awal)
posisiKepalaImage = KepalaKanan;
posisiKepalaImage = KepalaKeKanan;
}
content.drawImage(posisiKepalaImage, cell.x, cell.y, grid, grid);
} else {
content.drawImage(BadanUlarImage, cell.x, cell.y, grid, grid);
content.drawImage(BadanHori, cell.x, cell.y, grid, grid);
}
});
//bagian generate ular
Ular.cells.forEach(function (cell, index) {
if (index === 0) {
content.drawImage(KepalaUlarImage, cell.x, cell.y, grid, grid);
content.drawImage(KepalaKeKanan, cell.x, cell.y, grid, grid);
} else {
content.drawImage(BadanUlarImage, cell.x, cell.y, grid, grid);
content.drawImage(BadanHori, cell.x, cell.y, grid, grid);
}
//buat pas ular makan Apel
@ -264,8 +255,7 @@
//buat pas ular mati kena badan sendiri
for (var i = index + 1; i < Ular.cells.length; i++)
if (cell.x === Ular.cells[i].x && cell.y === Ular.cells[i].y)
GameOver();
if (cell.x === Ular.cells[i].x && cell.y === Ular.cells[i].y) GameOver();
});
}
@ -329,9 +319,9 @@
if (e.code === "KeyE" || e.code == "KeyQ")
speed =
e.code == "KeyE" && speed > 5
e.code == "KeyE" && speed > 2
? speed - 1
: e.code == "KeyQ" && speed < 15
: e.code == "KeyQ" && speed < 30
? speed + 1
: speed;
});

View File

@ -17,7 +17,7 @@
<h1>Snake</h1>
</div>
</header>
<img src="" alt="">
<!-- main konten -->
<div class="HalamanFull">
<canvas width="1056" height="480" id="game"></canvas>