math-kingdom-game / prologue.html
Lashtw's picture
Upload 41 files
dc9ab84 verified
<!DOCTYPE html>
<html lang="zh-TW">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>序章:勇者的召喚 - 數學魔法王國:平方之旅</title>
<link rel="stylesheet" href="style.css">
</head>
<body class="prologue-page">
<!-- 音效元素 -->
<audio id="bgm" loop>
<source src="Theme.mp3" type="audio/mpeg">
</audio>
<div class="game-container">
<div class="prologue-container">
<h1 class="prologue-title">序章:勇者的召喚</h1>
<div class="prologue-content">
<p>你被王國的智者召喚到王宮,得知自己是預言中的「數學勇者」。</p>
<p>智者解釋道:「平方之力分為三個層次:『直覺感知』、『轉換變化』和『展開融合』。你必須前往王國的三個神聖地點,通過試煉獲得這三種力量。」</p>
<p>智者給了你一張魔法地圖,上面標記著三個地點:「平方之泉」、「變換山谷」和「展開之塔」。</p>
<p>「記住,勇者,」智者嚴肅地說,「這不僅是一場考驗,更是一段成長之旅。每一關的力量都是下一關的基礎,你必須按順序完成試煉。」</p>
</div>
<div class="navigation-buttons">
<button id="back-to-home" class="nav-btn">返回首頁</button>
<button id="continue-journey" class="nav-btn">王國地圖</button>
</div>
<!-- 音樂來源註記 -->
<div class="music-credit">
<p>背景音樂:由Suno製作</p>
<button id="toggle-bgm" class="small-btn">音樂開/關</button>
</div>
</div>
</div>
<script src="prologue.js"></script>
<!-- 音樂連續播放控制 -->
<script>
// 嘗試從localStorage獲取音樂播放狀態和時間
document.addEventListener('DOMContentLoaded', function() {
const bgmAudio = document.getElementById('bgm');
const toggleBgmBtn = document.getElementById('toggle-bgm');
// 檢查是否有保存的音樂狀態
const musicPlaying = localStorage.getItem('musicPlaying') === 'true';
const musicTime = parseFloat(localStorage.getItem('musicTime') || '0');
if (musicPlaying) {
// 設置音樂播放位置
bgmAudio.currentTime = musicTime;
bgmAudio.play().catch(e => console.log('自動播放被阻止:', e));
toggleBgmBtn.textContent = '音樂關';
} else {
toggleBgmBtn.textContent = '音樂開';
}
// 定期保存音樂播放位置
setInterval(function() {
if (!bgmAudio.paused) {
localStorage.setItem('musicTime', bgmAudio.currentTime.toString());
localStorage.setItem('musicPlaying', 'true');
} else {
localStorage.setItem('musicPlaying', 'false');
}
}, 1000);
// 頁面離開前保存音樂狀態
window.addEventListener('beforeunload', function() {
localStorage.setItem('musicTime', bgmAudio.currentTime.toString());
localStorage.setItem('musicPlaying', !bgmAudio.paused ? 'true' : 'false');
});
});
</script>
</body>
</html>