Files
blind/game1/js/main.js
T
2026-05-21 00:13:41 +08:00

56 lines
1.5 KiB
JavaScript

// main.js — 游戏入口
let engine = null;
let gestures = null;
async function main() {
TTS.init();
// 初始化音频(必须在用户手势后)
await Snd.init();
// 请求屏幕常亮
try {
if ('wakeLock' in navigator) {
window._wakeLock = await navigator.wakeLock.request('screen');
}
} catch (_) {}
// 绑定手势
const gameEl = document.getElementById('game');
gestures = new GestureDetector(gameEl);
// 创建并启动引擎
engine = new GameEngine();
engine.init(gestures);
await engine.start();
if (DEV) {
document.getElementById('dbg').style.display = 'block';
document.title = '林夏 [DEV]';
}
}
// 触摸启动(手机)
document.getElementById('start').addEventListener('touchend', async function onStart(e) {
e.preventDefault();
this.removeEventListener('touchend', onStart);
this.style.transition = 'opacity 0.8s';
this.style.opacity = '0';
setTimeout(() => { this.style.display = 'none'; }, 800);
await main();
}, { once: true });
// 鼠标点击(电脑调试)
document.getElementById('start').addEventListener('click', async function onClick() {
this.removeEventListener('click', onClick);
this.style.transition = 'opacity 0.8s';
this.style.opacity = '0';
setTimeout(() => { this.style.display = 'none'; }, 800);
await main();
}, { once: true });
// 防止页面滚动/缩放
document.addEventListener('touchmove', e => e.preventDefault(), { passive: false });
document.addEventListener('gesturestart', e => e.preventDefault());