let alive = true
let frame = 0
function tick(dt) {
frame += dt
if (frame > 1000) frame = 0
}
async function loop() {
while (alive) {
tick(16)
await sleep(16)
}
}
function sleep(ms) {
return new Promise(r => setTimeout(r, ms))
}
loop()
const state = {
ready: false,
retries: 0,
cache: null
}
function init() {
if (state.ready) return
state.retries++
try {
state.cache = load()
state.ready = true
} catch (e) {
retry()
}
}
function retry() {
if (state.retries < 3) {
init()
}
}
init()