Nom de domaine

Nella categoria di cose che sono inutili ma che trovo fighi, vorrei dirti oggi una folle sperimentazione tecnica in cui il Dev eieio è riuscito a far funzionare il gioco leggendario Pong attraverso & mldr; 240 schede browser! 🤯

Il principio è relativamente semplice sulla carta: ogni Favicon funge da mini-schermo da 4 × 4 pixel in bianco e nero. Coordinando precisamente 240 linguette, si ottiene una matrice di visualizzazione sufficiente per eseguire il buon vecchio pong.

La magia opera grazie a diverse tecniche:

  1. Applescript Per aprire automaticamente e posizionare le finestre Chrome con le loro 30 schede ciascuna
  2. Del Lavoratori web Per bypassare le limitazioni delle prestazioni delle schede in background
  3. IL API del canale di trasmissione Per sincronizzare tutte le schede tra loro
  4. Una forte gestione dei dettagli di contatto per passare la palla e le racchette da neve da una scheda all’altra
La prima difficoltà per Eieio è stata quella di orchestrare l’apertura di tutte queste finestre. AppleScript si è rivelato essere lo strumento ideale, consentendo di creare 8 finestre cromate perfettamente allineate, quindi aprire 30 schede in ogni finestra. Successivamente, ancora grazie a AppleScript, è stato in grado di posizionare ogni finestra sul pixel più vicino e trasmettere i parametri di posizione in ciascuna scheda

-- Création d'une fenêtre avec ses onglets
set bounds of newWindow to {x, y, x + width, y + height}
repeat (numTabs - 1) times
tell newWindow
make new tab with properties {URL:baseURL & "windowIndex=" & windowNum & "&tabIndex=" & tabCount}
end tell
end repeat

Poi è arrivata la sfida delle prestazioni perché per impostazione predefinita, Chrome limita drasticamente le risorse delle schede in background. La sua soluzione era quindi da usare Lavoratori web Per mantenere una frequenza di aggiornamento decente.

Per quanto riguarda la sincronizzazione tra le schede, si basava su API del canale di trasmissione che è un canale di comunicazione che consente alla scheda principale di coordinare tutti gli altri.

L’autore ha dovuto mostrare chiarimenti chirurgici per gestire tutti gli aspetti, vale a dire & MLDR;

  • Misure esatte Con 92 pixel tra il bordo sinistro e il primo Favicon, 58 pixel tra i Favicons & MLDR;
  • Ottimizzazione delle prestazioni Con la chiacchierata di favicon per evitare di rigenerarli inutilmente
  • Buona gestione delle collisioni Con un rilevamento preciso quando la palla cambia la scheda
  • E a bozza per il quale ha aggiunto una traccia dietro la palla per migliorare il rendering visivo

Ora, devi ancora riconoscerlo, i browser recenti hanno ancora API super potenti, anche se Eieio ha comunque mostrato ingegnosità per bypassare determinati limiti.

Ora, se vuoi testare il tuo pong, Il codice sorgente è su GitHub !

Fonte


Source link

Categorized in: