Files
blind/game/js/main.js
T
2026-05-24 12:35:35 +08:00

59 lines
1.4 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]';
}
}
// 防止双重启动
let _started = false;
function startGame(el) {
if (_started) return;
_started = true;
el.style.transition = 'opacity 0.8s';
el.style.opacity = '0';
setTimeout(() => { el.style.display = 'none'; }, 800);
main();
}
// 触摸启动(手机)
document.getElementById('start').addEventListener('touchend', function(e) {
e.preventDefault();
startGame(this);
}, { once: true });
// 鼠标点击(电脑调试)
document.getElementById('start').addEventListener('click', function() {
startGame(this);
}, { once: true });
// 防止页面滚动/缩放
document.addEventListener('touchmove', e => e.preventDefault(), { passive: false });
document.addEventListener('gesturestart', e => e.preventDefault());