Ho sviluppato due diversi cloni di Flappy Bird (e ne arriveranno altri) come puro esercizio di stile per esercitarmi nei due linguaggi.
Il clone di Flappy Bird in Java è stato realizzato utilizzando Java Swing per l'interfaccia grafica. Potendo sfruttare il multithreading, ho animato separatamente lo sfondo, l'uccellino e i tubi. Fun fact: per realizzare i tubi ho usato un .png alto pochi pixel che viene ripetuto N volte, il tubo corrispondente sul soffitto è lungo TOT-N segmenti ripetuti.

La versione JS usa la manipolazione del DOM con jQuery e dei canvas oltre che il CSS per animare il progetto. Rispetto alla versione Java, non ho potuto usare il multithreading; mi sono basato su una regola CSS per animare lo sfondo e un timeout per muovere gli elementi; per permettere la differenza di velocità degli elementi, essendo il loro spostamento animato da un unico metodo, ho creato una variabile per cui determinati elementi vengono mossi ogni N frame; i valori di lentezza sono modificabili dai radiobutton in basso.

Insoddisfatto di solo due cloni, ho realizzato una versione con uno stack tecnologico inutilmente pesante: React.js TypeScript. Ho voluto sperimentare React.js e TypeScript, ma non ho trovato un motivo per cui sarebbe stato utile. Nel complesso è stato un solo un esercizio forzato ma eccoci qui, se vuoi puoi provarlo.
