its finaly done

This commit is contained in:
Nathan 2025-12-19 01:01:10 +07:00
parent 6ad0110109
commit d62cc3c97f
3 changed files with 27 additions and 46 deletions

View File

@ -9,34 +9,25 @@ const sfxLose = document.getElementById("sfxLose");
const toggleBtn = document.getElementById("toggleMusic"); const toggleBtn = document.getElementById("toggleMusic");
const countdownOverlay = document.getElementById("countdown-overlay"); const countdownOverlay = document.getElementById("countdown-overlay");
let musicMuted = false; let musicMuted = true;
toggleBtn.textContent = "🔇";
function playSFX(audio) { function playSFX(audio) {
if(!musicMuted) { audio.currentTime = 0;
audio.currentTime = 0; audio.play().catch(() => {});
audio.play().catch(() => {});
}
} }
document.addEventListener('click', function initAudio() {
if(musicMuted) {
musicMuted = false;
toggleBtn.textContent = "🔊";
bgMusic.play().catch(() => {});
document.removeEventListener('click', initAudio);
}
});
toggleBtn.onclick = (e) => { toggleBtn.onclick = (e) => {
e.stopPropagation(); e.stopPropagation();
if (musicMuted) { if (musicMuted) {
bgMusic.play(); bgMusic.play();
toggleBtn.textContent = "🔊"; toggleBtn.textContent = "🔊";
musicMuted = false;
} else { } else {
bgMusic.pause(); bgMusic.pause();
toggleBtn.textContent = "🔇"; toggleBtn.textContent = "🔇";
musicMuted = true;
} }
musicMuted = !musicMuted;
}; };
const images = [ const images = [

View File

@ -1,3 +1,4 @@
// --- AUDIO CONFIG ---
const bgMusic = document.getElementById("bgMusic"); const bgMusic = document.getElementById("bgMusic");
const sfxClick = document.getElementById("sfxClick"); const sfxClick = document.getElementById("sfxClick");
const sfxMatch = document.getElementById("sfxMatch"); const sfxMatch = document.getElementById("sfxMatch");
@ -8,34 +9,32 @@ const sfxLose = document.getElementById("sfxLose");
const toggleBtn = document.getElementById("toggleMusic"); const toggleBtn = document.getElementById("toggleMusic");
const overlay = document.getElementById("countdown-overlay"); const overlay = document.getElementById("countdown-overlay");
// 1. Set Default Mute (Mati)
let musicMuted = true; let musicMuted = true;
toggleBtn.textContent = "🔇";
// 2. SFX Jalan Terus (Tanpa Cek Mute)
function playSFX(audio) { function playSFX(audio) {
if(!musicMuted) { audio.currentTime = 0;
audio.currentTime = 0; audio.play().catch(() => {});
audio.play().catch(() => {});
}
} }
document.addEventListener('click', function initAudio() { // 3. Listener 'initAudio' DIHAPUS
if(musicMuted) { // (Supaya musik tidak nyala otomatis saat klik layar sembarangan)
musicMuted = false;
toggleBtn.textContent = "🔊";
bgMusic.play().catch(() => {});
document.removeEventListener('click', initAudio);
}
});
toggleBtn.onclick = (e) => { toggleBtn.onclick = (e) => {
e.stopPropagation(); e.stopPropagation();
if (musicMuted) { if (musicMuted) {
// Nyalakan Musik
bgMusic.play(); bgMusic.play();
toggleBtn.textContent = "🔊"; toggleBtn.textContent = "🔊";
musicMuted = false;
} else { } else {
// Matikan Musik
bgMusic.pause(); bgMusic.pause();
toggleBtn.textContent = "🔇"; toggleBtn.textContent = "🔇";
musicMuted = true;
} }
musicMuted = !musicMuted;
}; };
const images = [ const images = [
@ -68,7 +67,6 @@ function showComboPopup(targetCard, combo, bonus) {
setTimeout(() => popup.remove(), 1500); setTimeout(() => popup.remove(), 1500);
} }
function shuffleDistant(cards, minDistance = 4) { function shuffleDistant(cards, minDistance = 4) {
let valid = false; let valid = false;
let result; let result;
@ -111,7 +109,6 @@ function shuffleDistant(cards, minDistance = 4) {
return result; return result;
} }
function runCountdown(callback) { function runCountdown(callback) {
let count = 3; let count = 3;
overlay.style.display = "flex"; overlay.style.display = "flex";
@ -212,7 +209,7 @@ function flipCard(card) {
score += 50; score += 50;
document.getElementById("score").textContent = score; document.getElementById("score").textContent = score;
time += 5; time += 5;
document.getElementById("timer").textContent = time; // Update tampilan waktu bonus document.getElementById("timer").textContent = time;
flipped = []; flipped = [];
if (document.querySelectorAll(".matched").length === cards.length) { if (document.querySelectorAll(".matched").length === cards.length) {
@ -234,7 +231,9 @@ function startGame() {
board.innerHTML = ""; board.innerHTML = "";
runCountdown(() => { runCountdown(() => {
// Pastikan musik hanya main jika musicMuted = false (user sudah toggle on)
if(!musicMuted) bgMusic.play().catch(() => {}); if(!musicMuted) bgMusic.play().catch(() => {});
const shuffledCards = shuffleDistant([...cards]); const shuffledCards = shuffleDistant([...cards]);
shuffledCards.forEach(image => { shuffledCards.forEach(image => {
const card = document.createElement("div"); const card = document.createElement("div");

View File

@ -9,34 +9,25 @@ const sfxLose = document.getElementById("sfxLose");
const toggleBtn = document.getElementById("toggleMusic"); const toggleBtn = document.getElementById("toggleMusic");
const countdownOverlay = document.getElementById("countdown-overlay"); const countdownOverlay = document.getElementById("countdown-overlay");
let musicMuted = false; let musicMuted = true;
toggleBtn.textContent = "🔇";
function playSFX(audio) { function playSFX(audio) {
if(!musicMuted) { audio.currentTime = 0;
audio.currentTime = 0; audio.play().catch(() => {});
audio.play().catch(() => {});
}
} }
document.addEventListener('click', function initAudio() {
if(musicMuted) {
musicMuted = false;
toggleBtn.textContent = "🔊";
bgMusic.play().catch(() => {});
document.removeEventListener('click', initAudio);
}
});
toggleBtn.onclick = (e) => { toggleBtn.onclick = (e) => {
e.stopPropagation(); e.stopPropagation();
if (musicMuted) { if (musicMuted) {
bgMusic.play(); bgMusic.play();
toggleBtn.textContent = "🔊"; toggleBtn.textContent = "🔊";
musicMuted = false;
} else { } else {
bgMusic.pause(); bgMusic.pause();
toggleBtn.textContent = "🔇"; toggleBtn.textContent = "🔇";
musicMuted = true;
} }
musicMuted = !musicMuted;
}; };
const images = [ const images = [