View Full Version : [CICLO 3] Storia 1
Nuovo ciclo, nuova storia...
Storia
Il sistema di coordinate utilizzato dal gioco è definito con l'origine degli assi in alto a sinistra dello schermo. Occorre tradurre queste coordinate, in modo da renderle compatibili con il formato adottato da OpenGL.
L'hot spot deve essere situato in alto a sinistra.
Uno sprite è definito da una porzione rettangolare di texel di dimensioni qualsiasi, posta all'interno di una texture di dimensione in potenza di due.
Durante il meeting di ieri sera abbiamo deciso come gestire le coordinate e le texture all'interno del progetto. Il sistema di coordinate avra quindi l'origine nel angolo in alto a sinistra. Questo vale anche per l'hotspot degli sprite e delle texture. Le Texture avranno sempre come dimensione una potenza di due. Sara poi Sprite a dover delimitare una zona all'interno di questa Texture.
Un'altra cosa molto importante riguarda la gestione dei task. Una volta che vi siete prenotati dovete subito pasare a scrivere i test che userete per l'implementazione. Finiti i test li publicate qui è aspettate una conferma mia o di fek. Solo dopo una nostra conferma potete procedere con implementazione e commit sul server.
Fra qualche ciclo, quando sarete tutti dei maestri dei test, elimineremo le fasi del post sul forum e della conferma.
Task
3.1 Transizione al nuovo sistema di coordinate in tutto il progetto e i test. (^TiGeRShArK^: completato)
3.2 Aggiungere a Texture e Sprite la capacita di gestire immagini con dimensioni diverse da una potenza di due. (cisc+fek: completato)
3.3 Transizione del'hotspot dal centro all'angolo in alto a sinistra. (71104: completato)
ciao ;)
^TiGeRShArK^
20-10-2005, 17:23
provo ad effettuare la transizione del sistema di coordinate visto che già nella scorsa storia a cui avevo pratecipato avevo visto un paio di punti "caldi" in cui venivano usate le coordinate...
temp oprevisto... boh... spero ke una volta proposti i test l'approvazione sia abbastanza veloce xkè x il week-end km al solito credo di non poter lavorare ke sarò fuori :Prrr:
In sintesi..... Prenotazione Task 3.1
provo ad effettuare la transizione del sistema di coordinate visto che già nella scorsa storia a cui avevo pratecipato avevo visto un paio di punti "caldi" in cui venivano usate le coordinate...
temp oprevisto... boh... spero ke una volta proposti i test l'approvazione sia abbastanza veloce xkè x il week-end km al solito credo di non poter lavorare ke sarò fuori :Prrr:
In sintesi..... Prenotazione Task 3.1
Ok è tutta tua. Per i test non penso ci sia bisogno in questo caso. Ce ne sono gia una decina sulle collisioni. Prima cerca di far passare quelli. Certo se ne vuoi proporre altri sono sempre benvenuti.
ciao ;)
^TiGeRShArK^
20-10-2005, 23:21
fiuuuuu...
fine....
che casino...
col rincoglionimento non ho messo neanche il log nel commit....
comunque dovrebbe essere la revision 339 quella funzionante col cambio di coordinate che ho appena committato...
c'è un modo per aggiungere un log dimenticato?
ho provato a fare edit log ma dice che il repository non è abilitato ad effettuare property change... :mbe:
comunque....
ORA SI RAGIONA CON LE COORDINATE IN TOP-LEFT.....
dopo ke ho sudato sangue (anche se non sembra dal poco codice che ho scritto :p) il primo che sbaglia ad usare le coordinate LO SCUOIO! :sofico:
TestOpenGLCooord :fagiano:
^TiGeRShArK^
21-10-2005, 00:01
miiiiiiiiiii ke pignolooooo!!!!
stai facendo a gara con fek?!?!?!?!?
cmq ho appena corretto :Prrr:
controlla! :sofico:
aggiornata la knowledge; l'hot spot degli sprites è sempre al centro, vero?
se non sbaglio l'hotspot è passato in alto a sinistra, cmq aspetta un'altra conferma
^TiGeRShArK^
21-10-2005, 09:28
mmmmm...
no l'hot spot è sempre al centro...
per Transizione al nuovo sistema di coordinate in tutto il progetto e i test avevo inteso le coordiante vere e proprie...
l'hot spot quindi non l'ho toccato perchè non era specificato nel task e abbiamo detto di NON fare assolutamente quello ke non era richiesto...
poi se come al solito il task era ambiguo e dovevo fare pure quello mi metto e lo faccio stasera...
però fatemi sapere :Prrr:
Gammaglobulino
21-10-2005, 09:47
Guys posso fare una proposta?
Potremmo introdurre un regola percui una persona possa completare al max un 1 o 2 task per storia?
Questo sistema purtroppo penalizza chi batte tasti dalla mattina alla sera e ha poco tempo se non a notte inoltrata di lavorare al progetto ( si trova già i task assegnati :) ).
Chiaramente la regola potrebbe essere flessibile nei momenti di mancanza di manodopera :D che causerebbero uno stallo nella crescita?
Fatemi sapere
cdimauro
21-10-2005, 10:21
Sono d'accordo.
x ^TiGeRShArK^: anche l'hot spot dovrebbe stare in alto a sinistra. Non ho il log della chiaccherata su IRC in questo momento, ma io ho questo (vago) ricordo.
Confermo, l'hot spot deve essere in alto a sinistra.
Colpa mia, avrei dovuto specificarlo nella storia.
P.S.: Concordo, l'idea di Gammaglobulino è ottima. Più che come regola fissa, però, la considererei una sorta di autoregolamentazione che dobbiamo darci da soli (non si sa mai, tutto dipende dalle circostanze di ogni singola storia).
Un'altra cosa molto importante riguarda la gestione dei task. Una volta che vi siete prenotati dovete subito pasare a scrivere i test che userete per l'implementazione. Finiti i test li publicate qui è aspettate una conferma mia o di fek. Solo dopo una nostra conferma potete procedere con implementazione e commit sul server.
Solo una piccola nota: non dovete scrivere tutti i test che vi servono per l'implementazione ma solo il test o i test che mostrano che il task e' stato completato (acceptance test). E poi procedere in Test Driven a scrivere il codice, ovvero prima un test, poi il codice, poi refactoring, test, codice, refactoring.
Guys posso fare una proposta?
Potremmo introdurre un regola percui una persona possa completare al max un 1 o 2 task per storia?
Questo sistema purtroppo penalizza chi batte tasti dalla mattina alla sera e ha poco tempo se non a notte inoltrata di lavorare al progetto ( si trova già i task assegnati :) ).
Chiaramente la regola potrebbe essere flessibile nei momenti di mancanza di manodopera :D che causerebbero uno stallo nella crescita?
Fatemi sapere
Concordo. Ma non come regola, andiamo a buon senso per ora. Ognuno si prenoti per max 1 o 2 task alla volta. Se poi avanzano task quando ha finito i suoi puo' prenotarsi per altri.
Confermo, l'hot spot deve essere in alto a sinistra.
Colpa mia, avrei dovuto specificarlo nella storia.
P.S.: Concordo, l'idea di Gammaglobulino è ottima. Più che come regola fissa, però, la considererei una sorta di autoregolamentazione che dobbiamo darci da soli (non si sa mai, tutto dipende dalle circostanze di ogni singola storia).
Puoi aggiornare questa Storia se vuoi e il task relativo.
Puoi aggiornare questa Storia se vuoi e il task relativo.
Fatto, per il task aspettiamo Vicius ;)
^TiGeRShArK^
21-10-2005, 12:26
....
qdi praticamente se lo acchiappa qualun altro il task dell'hot spot o tocca ancora a me ke non ho capito??? :mbe:
se lo fa qualcun altro ben venga così mi riposo un pò.... :Prrr:
Gente...c'è un test che fallsice... E' quello in TestSound.Java... Il motivo non lo so... Probabilmente il sonoro resta inizializzato e lui va avanti... Succede anche a voi ?
Per cambiare l'hot spot basta togliere i "/ 2f" in Sprite.java ? Ad occhio mi sembra di sì... Poi c'è da modifcare un mucchio di test, ma è banale...
Gente...c'è un test che fallsice... E' quello in TestSound.Java... Il motivo non lo so... Probabilmente il sonoro resta inizializzato e lui va avanti... Succede anche a voi ?
Ad occhio l'audio non viene "spento" correttamente in TestCollisionSound.java:
public void tearDown()
{
audio.shutDown();
}
Tra l'altro manca ad occhio manca un test per audio.shutDown();
Sono d'accordo.
x ^TiGeRShArK^: anche l'hot spot dovrebbe stare in alto a sinistra. Non ho il log della chiaccherata su IRC in questo momento, ma io ho questo (vago) ricordo.
Confermo anche l'hotspot sta in alto a sinistra.
ciao ;)
....
qdi praticamente se lo acchiappa qualun altro il task dell'hot spot o tocca ancora a me ke non ho capito??? :mbe:
se lo fa qualcun altro ben venga così mi riposo un pò.... :Prrr:
Vai pure in panchina a riposarti. Ci servirai ancora nel secondo tempo :asd:
ciao ;)
^TiGeRShArK^
21-10-2005, 13:38
Ad occhio l'audio non viene "spento" correttamente in TestCollisionSound.java:
public void tearDown()
{
audio.shutDown();
}
Tra l'altro manca ad occhio manca un test per audio.shutDown();
a me falliva TestAudioBeforeCreation.... ma la cosa strana era ke mi falliva solo da eclipse... :mbe:
lanciando la build con ant mi dava verde in tutti i test... :confused:
e comunque mi chiedo come faccia a non lanciare un'eccezione da eclipse se da anta la lancia perchè quel test verifica appunto che l'eccezione sia stata lanciata..
cmq in effetti credo che dovremmo investigarlo un pò meglio questo problema ....
P.S. tra l'altro nella frase precedente hai scritto "Tra l'altro manca ad occhio manca un test per audio.shutDown();"
tanto per abbassarmi al tuo livello di pignoleria :asd: :D
^TiGeRShArK^
21-10-2005, 13:41
Vai pure in panchina a riposarti. Ci servirai ancora nel secondo tempo :asd:
ciao ;)
ok mister provvedo! :O
sentivo giusto il menisco un pò cigolante :fagiano:
Ad occhio l'audio non viene "spento" correttamente in TestCollisionSound.java:
public void tearDown()
{
audio.shutDown();
}
Tra l'altro manca ad occhio manca un test per audio.shutDown();
Lo aggiungi per favore? Sentitevi perfettamente liberi di aggiungere tutti i test che volete quando pensate che manchino.
Se un test fallisce, fissatelo pure.
Se vedete possibilita' di refactoring, fatelo.
Se mancano dei test, aggiungeteli.
Vi lasciamo molta liberta' su questo. Non siate timidi :D
Probabilmente da ANT non fallisce perchè TestAudioBeforeCreation viene testato prima di TestCollisionSound...
Vi lasciamo molta liberta' su questo. Non siate timidi :D
Non ho ben presente come funziona OpenAL non so se sono il più adatto, il test lo posso anche fare, non è un problema...
shutDown è stato testato, me l'ero perso... Aggiungendo questo test prima di quello che fallisce, tutti i test passano anche da Eclipse:
public void testSoundAfterAudioShutdown()
{
Audio audio = new Audio();
audio.shutDown();
try
{
Sound sound = new Sound("diamond");
}
catch (SoundException e)
{
return;
}
fail("exception not raised");
}
Quindi suppongo che ci sia un test che non fa uno shutDown dell'audio...
Non era stato fatto lo shutDown in TestGemWithBounds.java !!! :D
Committed ;)
Non era stato fatto lo shutDown in TestGemWithBounds.java !!! :D
Committed ;)
Ottimo lavoro :mano:
ciao ;)
Non era stato fatto lo shutDown in TestGemWithBounds.java !!! :D
Committed ;)
Ottimo! E' importante che i test siano indipendenti l'uno dall'altro. Quando un test fallisce in maniera intermittente, vuol dire che questa indipendenza e' saltata.
Sto dando un occhio al codice scritto recentemente e mi piace. E' tutto molto pulito e chiaro.
Mi piace la classe Coord, bella idea il separare la "traduzione" del sistema di coordiate in una sua classe, che e' facile da testare. C'e' anche spazio per qualche semplificazione che e' coperta dai test, segnale di un buon design.
Cambierei solo il nome in CoordinateSystem, perche' mi piaciono i nomi autoesplicativi, ma e' solo una pignoleria :)
Possiamo chiudere il primo task in 1 giorno.
Chi si prende T2 e T3?
Su dai. Non fate i timidi :D
ciao ;)
^TiGeRShArK^
21-10-2005, 23:33
e stavolta io non posso a quest'ora :Prrr:
se ancora nn li ha presi nessuno x lunedi me ne faccio uno io...
(ma nn credo ke questo branco di lupi affamati me ne dia l'opportunità! :asd: :D)
[pignolo mode]vorrei ricordare di aggiornare il mio task con un bel COMPLETATO soprattutto dopo il refactoring di fek :O[/pignolo mode]
e stavolta io non posso a quest'ora :Prrr:
se ancora nn li ha presi nessuno x lunedi me ne faccio uno io...
(ma nn credo ke questo branco di lupi affamati me ne dia l'opportunità! :asd: :D)
[pignolo mode]vorrei ricordare di aggiornare il mio task con un bel COMPLETATO soprattutto dopo il refactoring di fek :O[/pignolo mode]
Fatto.
ciao ;)
e stavolta io non posso a quest'ora :Prrr:
se ancora nn li ha presi nessuno x lunedi me ne faccio uno io...
(ma nn credo ke questo branco di lupi affamati me ne dia l'opportunità! :asd: :D)
[pignolo mode]vorrei ricordare di aggiornare il mio task con un bel COMPLETATO soprattutto dopo il refactoring di fek :O[/pignolo mode]
COMPLETATO +2 -1
non avevo visto che era stato aggiunto il 3.3, vorrei farlo io, penso di farcela in 1 giorno (e per fare contento fek proverò a farlo test first :D)
Fek, per il T2 i test li prepari tu vero? penso che sia il task più insidioso e più delicato creato fon'ora, sarebbe possibile dividerlo anche in due?
non avevo visto che era stato aggiunto il 3.3, vorrei farlo io, penso di farcela in 1 giorno (e per fare contento fek proverò a farlo test first :D)
Ok. È tutto tuo.
ciao ;)
Fek, per il T2 i test li prepari tu vero? penso che sia il task più insidioso e più delicato creato fon'ora, sarebbe possibile dividerlo anche in due?
Prova a prepararli tu qui e io ti aiuto. Oppure facciamo il task assieme in TDD sul forum come abbiamo fatto io e Vicius. Era venuto bene in quel caso.
sai, ho esperienza zero di OpenGL e grafica in generale, sto imparando con diamonds, in parole povere non saprei dove partire con il test... :stordita:
Lo facciamo assieme. Domani pomeriggio?
ok, vediamo che ne esce fuori con me:D
ho fatto ultimato il mio task ma Spartacus sembra spento al momento... VICIUS, metti "COMPLETATO", ma il commit lo farò appena possibile.
ho fatto ultimato il mio task ma Spartacus sembra spento al momento... VICIUS, metti "COMPLETATO", ma il commit lo farò appena possibile.
Si mette "completato" quando e' stato fatto il commit e il sign off da me o Vicius :)
Puoi contattare Anta e vedere perche' il server e' giu'?
Puoi contattare Anta e vedere perche' il server e' giu'? per ora su msn ha messo out to lunch, gli ho lasciato un messaggio, spero che legga quando torna; se non legge e/o non torna tra 1 oretta provo a chiamarlo.
ceAlex80
23-10-2005, 16:45
Scusate la niubaggine :D ma adesso che ho scaricato il tutto come faccio a compilare? :doh: Ho visto che nel repository ci sono le librerie lwgjl in formato jar, ma devo settare qualcos'altro nel progetto? Ho provato a fare un run, ma mi esce fuori quest'errore:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1682)
at java.lang.Runtime.loadLibrary0(Runtime.java:822)
at java.lang.System.loadLibrary(System.java:992)
at org.lwjgl.Sys$1.run(Sys.java:67)
at java.security.AccessController.doPrivileged(Native Method)
at org.lwjgl.Sys.<clinit>(Sys.java:65)
at org.lwjgl.opengl.Display.<clinit>(Display.java:104)
at it.diamonds.engine.DisplayImpl.findDisplayMode(DisplayImpl.java:91)
at it.diamonds.engine.DisplayImpl.initDisplay(DisplayImpl.java:114)
at it.diamonds.engine.DisplayImpl.<init>(DisplayImpl.java:35)
at it.diamonds.engine.Engine.create(Engine.java:35)
at it.diamonds.Game.createEngine(Game.java:70)
at it.diamonds.Game.main(Game.java:43)
Non ho tanta esperienza in Java ed Eclipse in particolare, ma vorrei dare anch'io il mio modestissimo contributo. Così imparo un pò..;)
Puoi spostare il post nel topic di TroubleShooting per favore?
il mio task (che penso sia stato svolto correttamente) ha introdotto un problema riguardante il pulsing del diamante (e tra parentesi i test non lo evidenziano): spostando l'hot spot in alto a sinistra succede che quando larghezza e altezza del diamante variano a causa della pulsazione, lo sprite subisce il clipping da destra e da sotto; ad es. se il diamante sta pulsando e tocca il bordo sinistro non succede nulla, se toccasse quello superiore idem, ma se tocca quello destro l'espansione della pulsazione e il clipping lo fanno spostare leggermente a sinistra, e la stessa cosa succederebbe se il diamante continuasse a pulsare dopo aver toccato il bordo inferiore.
inoltre dal momento che il centro dell'espansione provocata dalla pulsazione è sempre l'hot spot, ora che questo non si trova più al centro l'espansione non avviene più in tutte e quattro le direzioni, ma solo verso destra e verso il basso.
mi offro volontario per correggere il problema :D
Elimina la pulsazione. In fondo non l'ha mai chiesta nessuno e ci ha dato solo problemi fino ad oggi. Questo e' l'ultimo problema che ci da' :)
Se in futuro una storia richiedera' diamanti che pulsano, lo implementeremo di nuovo.
Nel frattempo puoi aspettare un po' prima del commit per favore? Io e cisc stiamo facendo TDD assieme ed il repository e' un po' incasinato, perche' ci scambiamo il codice. Appena abbiamo finito la code base sara' di nuovo stabile e usabile da tutti gli altri. Grazie.
ok, domani la tolgo, però è un peccato :confused: io propongo di rimetterla in futuro e di modificare i parametri in modo da renderla molto più veloce e un pochino più evidente: secondo me è un ottimo effetto grafico :)
l'unico problema è che è stata implementata prematuramente.
La pulsazione non è mai stata chiesta, però si è rivelata un'idea piuttosto piacevole (forse un pò troppo pronunciata, a voler essere pignoli).
In caso la reinseriremo, altrimenti amen (ed un problema in meno per i coder) :)
il problema potrebbe essere risolto secondo me aggiungendo un ulteriore classe che si occupi di gestire il problema incapsulando un oggetto gem...
il problema potrebbe essere risolto secondo me aggiungendo un ulteriore classe che si occupi di gestire il problema incapsulando un oggetto gem...
Un Adapter sta piangendo per essere implementato qui. Piangera' ancora per un po', per ora eliminiamo la pulsazione :)
Bene. I task sono tutti completati. Chiudiamo il thread ?
ciao ;)
Bene. I task sono tutti completati. Chiudiamo il thread ?
ciao ;)
T3.1.2 +3 cisc
T3.1.3 +2 71104
Vicius, passiamo ai task della Storia 2?
Nota: guardate la code base e compiacetevi di quanto sia pulita e sempilce. Bravi tutti :)
T3.1.2 +3 cisc
T3.1.3 +2 71104
Vicius, passiamo ai task della Storia 2?
Nota: guardate la code base e compiacetevi di quanto sia pulita e sempilce. Bravi tutti :)
OK. Ora posto il testo dei task che abbiamo deciso ieri in chat.
ciao ;)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.