- 新增 web/ 纯音频 HTML5 平台:共享引擎(手势/WebAudio 三层/设置/震动)、 Node 零依赖服务器(静态 + 注册登录 + 进度存档 API) - 游戏:剑与声(RPG 新作)、声命线、暗室(重设计)、音序回响(重设计)、 节拍行者(跟随领奏重构)、盲航(同向闪避重构);声东击西删除 - 全局功能:男声/女声双套 TTS 资产、三档语速、BGM 音量三档、 震动反馈语言(10 种震型)、服务器进度同步 - 资产:899 ogg + 899 m4a(Qwen3-TTS 双性别语音、Stable Audio 3 音效、 Mureka BGM 4+3 首),终检零缺失 - 文档:docs/design/ 13 篇设计审查文档、docs/audio/ 资产管线、 web/server/README.md API 文档
43 lines
1.5 KiB
HTML
43 lines
1.5 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="zh-CN">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<!-- viewport 锁缩放,viewport-fit=cover 适配刘海屏 -->
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, viewport-fit=cover">
|
|
<title>模板游戏 · SoundGame Web</title>
|
|
<link rel="stylesheet" href="../engine/style.css">
|
|
</head>
|
|
<body>
|
|
<!-- 全屏根元素:手势全屏捕获层,封面图放里面 -->
|
|
<div id="game-root">
|
|
<img class="cover" src="cover.png" alt="">
|
|
</div>
|
|
|
|
<!--
|
|
标准接线流程(每个游戏都一样,复制这段改 game.js 路径即可):
|
|
1. new WebAudioEngine('audio/') —— basePath 相对本页面
|
|
2. new MyGame(audio, root)
|
|
3. await audio.showStartOverlay() —— 遮罩"轻触开始",首次点按解锁音频
|
|
4. game.start() + attachGestures() —— 解锁后才接管手势,避免开始那次点按误触
|
|
-->
|
|
<script type="module">
|
|
import { WebAudioEngine } from '../engine/audio.js';
|
|
import { attachGestures } from '../engine/gesture.js';
|
|
import { TemplateGame } from './game.js';
|
|
|
|
async function main() {
|
|
const root = document.getElementById('game-root');
|
|
const audio = new WebAudioEngine('audio/');
|
|
const game = new TemplateGame(audio, root);
|
|
|
|
await audio.showStartOverlay({ cover: 'cover.png', text: '轻触开始' });
|
|
// 走到这里 AudioContext 已解锁,可以出声了
|
|
game.start();
|
|
attachGestures(root, (g) => game.onGesture(g));
|
|
}
|
|
|
|
main();
|
|
</script>
|
|
</body>
|
|
</html>
|