Spaces:
Running
Running
Update game.js
Browse files
game.js
CHANGED
@@ -58,8 +58,8 @@ class Fighter {
|
|
58 |
this.lastShootTime = 0;
|
59 |
|
60 |
// μΉ΄λ©λΌ μ€μ
|
61 |
-
this.cameraDistance =
|
62 |
-
this.cameraHeight =
|
63 |
this.cameraLag = 0.1;
|
64 |
}
|
65 |
|
@@ -537,6 +537,9 @@ class Game {
|
|
537 |
|
538 |
document.getElementById('loading').style.display = 'none';
|
539 |
|
|
|
|
|
|
|
540 |
this.animate();
|
541 |
|
542 |
} catch (error) {
|
@@ -546,6 +549,28 @@ class Game {
|
|
546 |
}
|
547 |
}
|
548 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
549 |
async preloadEnemies() {
|
550 |
for (let i = 0; i < GAME_CONSTANTS.ENEMY_COUNT; i++) {
|
551 |
const angle = (i / GAME_CONSTANTS.ENEMY_COUNT) * Math.PI * 2;
|
@@ -682,58 +707,39 @@ class Game {
|
|
682 |
}
|
683 |
|
684 |
startBGM() {
|
685 |
-
if (this.bgmPlaying) return;
|
686 |
|
687 |
-
console.log('BGM
|
688 |
|
689 |
-
|
690 |
-
|
691 |
-
|
692 |
-
|
693 |
-
|
694 |
-
|
695 |
-
|
696 |
-
|
697 |
-
|
698 |
-
|
699 |
-
|
700 |
-
|
701 |
-
|
702 |
-
|
703 |
-
|
704 |
-
|
705 |
-
|
706 |
-
|
707 |
-
|
708 |
-
|
709 |
-
|
710 |
-
|
711 |
-
|
712 |
-
|
713 |
-
|
714 |
-
|
715 |
-
|
716 |
-
|
717 |
-
|
718 |
-
console.log('μ¬μ©μ μνΈμμ©μΌλ‘ BGM μ¬μ μλ...');
|
719 |
-
this.bgm.play().then(() => {
|
720 |
-
this.bgmPlaying = true;
|
721 |
-
console.log('BGM μ¬μ μμ μ±κ³΅ (ν΄λ¦ ν)!');
|
722 |
-
// μ΄λ²€νΈ 리μ€λ μ κ±°
|
723 |
-
document.removeEventListener('click', tryPlayOnInteraction);
|
724 |
-
document.removeEventListener('keydown', tryPlayOnInteraction);
|
725 |
-
}).catch(e => console.log('BGM μ¬μ μ€ν¨:', e));
|
726 |
-
}
|
727 |
-
};
|
728 |
-
|
729 |
-
// ν΄λ¦μ΄λ ν€λ³΄λ μ
λ ₯ μ μ¬μ μλ
|
730 |
-
document.addEventListener('click', tryPlayOnInteraction);
|
731 |
-
document.addEventListener('keydown', tryPlayOnInteraction);
|
732 |
-
});
|
733 |
-
}
|
734 |
-
|
735 |
-
} catch (error) {
|
736 |
-
console.log('BGM μ΄κΈ°ν μ€ν¨:', error);
|
737 |
}
|
738 |
}
|
739 |
|
|
|
58 |
this.lastShootTime = 0;
|
59 |
|
60 |
// μΉ΄λ©λΌ μ€μ
|
61 |
+
this.cameraDistance = 60;
|
62 |
+
this.cameraHeight = 15;
|
63 |
this.cameraLag = 0.1;
|
64 |
}
|
65 |
|
|
|
537 |
|
538 |
document.getElementById('loading').style.display = 'none';
|
539 |
|
540 |
+
// BGM μ¬μ λ‘λ©
|
541 |
+
this.preloadBGM();
|
542 |
+
|
543 |
this.animate();
|
544 |
|
545 |
} catch (error) {
|
|
|
549 |
}
|
550 |
}
|
551 |
|
552 |
+
preloadBGM() {
|
553 |
+
console.log('BGM μ¬μ λ‘λ©...');
|
554 |
+
|
555 |
+
try {
|
556 |
+
this.bgm = new Audio('sounds/main.ogg');
|
557 |
+
this.bgm.volume = 0.5;
|
558 |
+
this.bgm.loop = true;
|
559 |
+
|
560 |
+
// μ€λμ€ μ΄λ²€νΈ 리μ€λ μΆκ°
|
561 |
+
this.bgm.addEventListener('loadstart', () => console.log('BGM λ‘λ© μμ'));
|
562 |
+
this.bgm.addEventListener('canplay', () => console.log('BGM μ¬μ κ°λ₯'));
|
563 |
+
this.bgm.addEventListener('error', (e) => console.log('BGM μλ¬:', e));
|
564 |
+
this.bgm.addEventListener('loadeddata', () => console.log('BGM λ°μ΄ν° λ‘λ μλ£'));
|
565 |
+
|
566 |
+
// νμΌ μ¬μ λ‘λ©
|
567 |
+
this.bgm.load();
|
568 |
+
|
569 |
+
} catch (error) {
|
570 |
+
console.log('BGM μ¬μ λ‘λ© μ€ν¨:', error);
|
571 |
+
}
|
572 |
+
}
|
573 |
+
|
574 |
async preloadEnemies() {
|
575 |
for (let i = 0; i < GAME_CONSTANTS.ENEMY_COUNT; i++) {
|
576 |
const angle = (i / GAME_CONSTANTS.ENEMY_COUNT) * Math.PI * 2;
|
|
|
707 |
}
|
708 |
|
709 |
startBGM() {
|
710 |
+
if (this.bgmPlaying || !this.bgm) return;
|
711 |
|
712 |
+
console.log('BGM μ¬μ μλ...');
|
713 |
|
714 |
+
// μ¦μ μ¬μ μλ
|
715 |
+
const playPromise = this.bgm.play();
|
716 |
+
|
717 |
+
if (playPromise !== undefined) {
|
718 |
+
playPromise.then(() => {
|
719 |
+
this.bgmPlaying = true;
|
720 |
+
console.log('BGM μ¬μ μμ μ±κ³΅!');
|
721 |
+
}).catch(error => {
|
722 |
+
console.log('μλ μ¬μμ΄ μ°¨λ¨λ¨:', error);
|
723 |
+
console.log('ν΄λ¦ ν μ¬μ μλ λκΈ° μ€...');
|
724 |
+
|
725 |
+
// μ¬μ©μ μνΈμμ© ν μ¬μ μ¬μλ
|
726 |
+
const tryPlayOnInteraction = () => {
|
727 |
+
if (!this.bgmPlaying && this.bgm) {
|
728 |
+
console.log('μ¬μ©μ μνΈμμ©μΌλ‘ BGM μ¬μ μλ...');
|
729 |
+
this.bgm.play().then(() => {
|
730 |
+
this.bgmPlaying = true;
|
731 |
+
console.log('BGM μ¬μ μμ μ±κ³΅ (ν΄λ¦ ν)!');
|
732 |
+
// μ΄λ²€νΈ 리μ€λ μ κ±°
|
733 |
+
document.removeEventListener('click', tryPlayOnInteraction);
|
734 |
+
document.removeEventListener('keydown', tryPlayOnInteraction);
|
735 |
+
}).catch(e => console.log('BGM μ¬μ μ€ν¨:', e));
|
736 |
+
}
|
737 |
+
};
|
738 |
+
|
739 |
+
// ν΄λ¦μ΄λ ν€λ³΄λ μ
λ ₯ μ μ¬μ μλ
|
740 |
+
document.addEventListener('click', tryPlayOnInteraction);
|
741 |
+
document.addEventListener('keydown', tryPlayOnInteraction);
|
742 |
+
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
743 |
}
|
744 |
}
|
745 |
|