Spaces:
Sleeping
Sleeping
| import { Runner } from './resources/dino_game/offline.js'; | |
| function enforceLandscape() { | |
| const wrapper = document.getElementById('game-wrapper'); | |
| if (!wrapper) return; | |
| const width = window.innerWidth; | |
| const height = window.innerHeight; | |
| if (height > width) { | |
| // Portrait mode -> force landscape | |
| wrapper.style.width = height + 'px'; | |
| wrapper.style.height = width + 'px'; | |
| wrapper.style.transform = 'translate(-50%, -50%) rotate(90deg)'; | |
| } else { | |
| // Already landscape | |
| wrapper.style.width = width + 'px'; | |
| wrapper.style.height = height + 'px'; | |
| wrapper.style.transform = 'translate(-50%, -50%) rotate(0deg)'; | |
| } | |
| } | |
| window.addEventListener('resize', enforceLandscape); | |
| window.addEventListener('load', () => { | |
| enforceLandscape(); | |
| const trexGameContainer = document.querySelector('.trex-game'); | |
| let runner = new Runner(trexGameContainer); | |
| const handleGlobalTap = (e) => { | |
| if (runner) { | |
| if (runner.crashed) { | |
| runner.restart(); | |
| e.preventDefault(); | |
| } else if (e.type === 'touchstart' || e.type === 'mousedown') { | |
| runner.onKeyDown({ | |
| keyCode: 32, | |
| type: 'keydown', | |
| preventDefault: () => {} | |
| }); | |
| } else if (e.type === 'touchend' || e.type === 'mouseup') { | |
| runner.onKeyUp({ | |
| keyCode: 32, | |
| type: 'keyup', | |
| preventDefault: () => {} | |
| }); | |
| } | |
| } | |
| }; | |
| document.body.addEventListener('touchstart', handleGlobalTap, { passive: false }); | |
| document.body.addEventListener('touchend', handleGlobalTap, { passive: false }); | |
| document.body.addEventListener('mousedown', handleGlobalTap); | |
| document.body.addEventListener('mouseup', handleGlobalTap); | |
| }); | |