// main.js — 入口 const DEV = location.search.includes('dev'); const TEST = location.search.includes('test'); let _booted = false; async function boot(e) { if (_booted) return; _booted = true; e.preventDefault(); // 屏幕常亮 try { if ('wakeLock' in navigator) navigator.wakeLock.request('screen').catch(() => {}); } catch (_) {} // 初始化子系统 await Narrator.init(); await Snd.init(); // 创建输入检测器 const touchEl = document.getElementById('g'); const input = new InputDetector(touchEl); // 创建引擎 const engine = new SceneEngine(); // 先启用输入 input.enable(); // 启动选择器 const selector = new GameSelector(engine, input); await selector.start(); if (DEV) { document.getElementById('dbg').style.display = 'block'; document.title = '盲游 [DEV]'; window.__engine = engine; window.__input = input; window.__selector = selector; } } const _el = document.getElementById('g'); _el.addEventListener('touchend', boot, { once: true, passive: false }); _el.addEventListener('click', boot, { once: true }); // 防止页面缩放 / 滚动 document.addEventListener('touchmove', e => e.preventDefault(), { passive: false }); document.addEventListener('gesturestart', e => e.preventDefault());