Spaces:
Running
Running
Download test_debug.js from codex-automatus/race: direct link, hf CLI and curl.
- Browser
- Download file 1.95 kB
-
https://huggingface.co/spaces/codex-automatus/race/resolve/refs%2Fpr%2F1/test_debug.js
- Command line
-
hf download hf://spaces/codex-automatus/race@refs/pr/1/test_debug.js
-
curl -L -o test_debug.js https://huggingface.co/spaces/codex-automatus/race/resolve/refs%2Fpr%2F1/test_debug.js
1.95 kB
| const puppeteer = require('puppeteer'); | |
| const path = require('path'); | |
| (async () => { | |
| const browser = await puppeteer.launch({ headless: 'new', | |
| args: ['--no-sandbox','--use-gl=swiftshader','--enable-unsafe-swiftshader'] }); | |
| const page = await browser.newPage(); | |
| await page.setViewport({ width: 1280, height: 720 }); | |
| const errors = []; | |
| page.on('pageerror', e => errors.push(e.message)); | |
| await page.goto('file://' + path.resolve(__dirname, 'index.html'), { waitUntil: 'domcontentloaded', timeout: 60000 }); | |
| await page.waitForFunction('typeof THREE !== "undefined" && typeof G !== "undefined"', { timeout: 20000 }); | |
| await new Promise(r => setTimeout(r, 1200)); | |
| await page.evaluate(() => startRace()); | |
| await new Promise(r => setTimeout(r, 4200)); // let countdown finish -> race | |
| // 1) force physics directly (bypass input): call updatePlayer manually | |
| let r1 = await page.evaluate(() => { | |
| const p = G.player; | |
| const inp = { left:0, right:0, gas:1, brake:0, nitro:0, drift:0 }; | |
| for (let i = 0; i < 60; i++) updatePlayer(1/60, inp); | |
| return { v: +(Math.hypot(p.vx,p.vz)).toFixed(1), x:+p.x.toFixed(1), z:+p.z.toFixed(1), s:Math.round(p.s) }; | |
| }); | |
| console.log('MANUAL PHYSICS 1s:', JSON.stringify(r1), '(expect ~15 m/s)'); | |
| // 2) now test keyboard input: check keys object after keydown | |
| await page.keyboard.down('ArrowUp'); | |
| const kState = await page.evaluate(() => ({ | |
| arrowUp: !!keys.ArrowUp, | |
| readGas: readInput().gas, | |
| })); | |
| console.log('KEYBOARD STATE:', JSON.stringify(kState)); | |
| await new Promise(r => setTimeout(r, 2000)); | |
| const r3 = await page.evaluate(() => { | |
| const p = G.player; | |
| return { v: +(Math.hypot(p.vx,p.vz)*3.6).toFixed(0) + ' km/h', keysUp: !!keys.ArrowUp, gas: readInput().gas, state: G.state }; | |
| }); | |
| console.log('AFTER 2s REAL TIME w/ KEY:', JSON.stringify(r3)); | |
| await page.keyboard.up('ArrowUp'); | |
| console.log('ERRORS:', errors); | |
| await browser.close(); | |
| })(); | |