E se sviluppassi un Tetris con Javascript ...
Una idea mi girava per la testa.
Perche' non provare a sviluppare una versione del Tetris con HTML e Javascript ...
Ero un po' scettico pero', dicevo: ... ci vorra' molto tempo ... magari non ci riesco ... e' difficile ...
Poi ci ho pensato seriamente.
Ho cominciato giocando con le parti grafiche, ho disegnato il tavolo di gioco, ho disegnato i pezzi ... e poi son passato alle prime prove con il javascript.
Piccola premessa: Da un po' di mesi ormai, per lavoro, ho fatto pratica con il framework MooTools, e' molto facile da usare e nel suo core ci sono gia' delle funzioni utili per le animazioni.
Quindi, dicevo, ho cominciato a sviluppare le rotazioni dei pezzi usando mootools (alla fine potevo anche non usarlo, o usare jQuery ... o qualsiasi altra cosa ...), ogni pezzo, html parlando, e' fatto da un div che contiene 4 altri div. Giocando con i margini e le posizioni assolute ho trovato tutte le coordinate delle rotazioni.
Ok, avevo tutto. Graficamente. E adesso c'era la parte piu' difficile. Come collocare i pezzi dentro il tavolo da gioco? Beh ... ho usato una grossa matrice. Ho riempito il tavolo di boxettini con le loro belle coordinate cartesiane ... et-volia' ... ho trovato il metodo per continuare lo sviluppo.
Superato lo scoglio delle collisioni con il muro e con i pezzi gia' inseriti (davvero certosino come lavoro, non posso annoiarvi con altri dettagli) ho integrato i livelli, il calcolo dei punteggi, la pausa, il softDrop, l'hardDrop ... ed ecco, in una settimana circa ho ottenuto il mio tetris (e' stato molto utile questo wiki per conoscere i vari dettagli da implementare).
L'ho battezzato TetriJs :)
Allora, volete giocarci e/o scaricare il codice sorgente? Spero di si :)
Qui trovate tutto, il codice l'ho rilasciato con licenza GNU GPL, cosi' chiunque puo' ridistribuirlo, modificarlo, sfasciarlo come piu' gli aggrada (rispettando i termini della licenza, ovviamente) :)
E' probabile che lo aggiorni man mano fixando bug, aggiungendo funzionalita' e altro.
Intanto che ne pensate? Vi piace?
Aggiornamento (21 Agosto 2010): Ho rilasciato una seconda versione. Ho fixato alcuni bug ed aggiunto nuove funzionalita'. Il changeLog completo e' qui. Grazie per i vostri commenti e suggerimenti. Spero di poterci lavorare ancora su ... mi mancano un paio di cose da aggiungere :)
PS: so che non funziona bene su IE7 ... non so pero' se avro' voglia di fixarlo per lui ...
Perche' non provare a sviluppare una versione del Tetris con HTML e Javascript ...
Ero un po' scettico pero', dicevo: ... ci vorra' molto tempo ... magari non ci riesco ... e' difficile ...
Poi ci ho pensato seriamente.
Ho cominciato giocando con le parti grafiche, ho disegnato il tavolo di gioco, ho disegnato i pezzi ... e poi son passato alle prime prove con il javascript.
Piccola premessa: Da un po' di mesi ormai, per lavoro, ho fatto pratica con il framework MooTools, e' molto facile da usare e nel suo core ci sono gia' delle funzioni utili per le animazioni.
Quindi, dicevo, ho cominciato a sviluppare le rotazioni dei pezzi usando mootools (alla fine potevo anche non usarlo, o usare jQuery ... o qualsiasi altra cosa ...), ogni pezzo, html parlando, e' fatto da un div che contiene 4 altri div. Giocando con i margini e le posizioni assolute ho trovato tutte le coordinate delle rotazioni.
Ok, avevo tutto. Graficamente. E adesso c'era la parte piu' difficile. Come collocare i pezzi dentro il tavolo da gioco? Beh ... ho usato una grossa matrice. Ho riempito il tavolo di boxettini con le loro belle coordinate cartesiane ... et-volia' ... ho trovato il metodo per continuare lo sviluppo.
Superato lo scoglio delle collisioni con il muro e con i pezzi gia' inseriti (davvero certosino come lavoro, non posso annoiarvi con altri dettagli) ho integrato i livelli, il calcolo dei punteggi, la pausa, il softDrop, l'hardDrop ... ed ecco, in una settimana circa ho ottenuto il mio tetris (e' stato molto utile questo wiki per conoscere i vari dettagli da implementare).
L'ho battezzato TetriJs :)
Allora, volete giocarci e/o scaricare il codice sorgente? Spero di si :)
Qui trovate tutto, il codice l'ho rilasciato con licenza GNU GPL, cosi' chiunque puo' ridistribuirlo, modificarlo, sfasciarlo come piu' gli aggrada (rispettando i termini della licenza, ovviamente) :)
E' probabile che lo aggiorni man mano fixando bug, aggiungendo funzionalita' e altro.
Intanto che ne pensate? Vi piace?
Aggiornamento (21 Agosto 2010): Ho rilasciato una seconda versione. Ho fixato alcuni bug ed aggiunto nuove funzionalita'. Il changeLog completo e' qui. Grazie per i vostri commenti e suggerimenti. Spero di poterci lavorare ancora su ... mi mancano un paio di cose da aggiungere :)
PS: so che non funziona bene su IE7 ... non so pero' se avro' voglia di fixarlo per lui ...
Etichette: cose_divertenti, giochi, html, javascript, programmazione