|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
|
Problema architetturale
il titolo è pomposo ma la domanda è sempliciotta
![]() ho separato gemFactory, introducendo RandomGemFactory che implementa solo i metodi getRandomQualcosa, mentre l'altra è solo per ottenere le gemme, chest, etc. Naturalmente RandomGemFactory usa gemFactory, che nell'implementazione attuale viene usata anche in updateStoneAction. Per cui ho "alzato" il momento di creazione del GemFactory in modo da usare un unico oggetto(non ha stato) in entrambi i posti. Ma mi è venuta l'idea di spostare la creazione ancora piu in alto, in modo che entrambi i playField (e tutto quello che contengono) abbiano il riferimento allo stesso oggetto. Ora mi chiedo, è una cosa inutile e brutta, o avrebbe un senso farlo? Altra cosa, posso committare indipendentemente dall'altro refactoring?(una factory per gem penso sia utile) |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Nov 2005
Città: Bologna
Messaggi: 1303
|
Forse si porebbe un problema.
Noi utilizziamo due generator inizializzati con lo stesso seed uno per palyField....se utilizziamo un oggetto solo alla fine non potremmo più avere la stessa sequenza di gemme tra i due field ![]() |
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
|
Quote:
il seed sarebbe usato nel randomFactoryGem, che continuerebbe a rimanere separato per i 2 field, mentre in comune rimarebbe solo il gemFactory che crea semplicemente delle gemme. |
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1545
|
secondo me intanto potresti commitare
![]() |
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Nov 2005
Città: Bologna
Messaggi: 1303
|
Quote:
Per me ha senso... ![]() |
|
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11782
|
Quote:
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
|
Quote:
seguendo questa filosofia, posso far creare il gemFactory a chi serve(per farlo basta il config che nel costruttore lo hanno quasi tutti gli oggetti). |
|
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11782
|
Quote:
![]()
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
|
non sono ancora riuscito a fare il commit della divisione delle droppable factory, visto che becco sempre spartacus giu.
pero oggi sono riuscito a introddurre il pattern state in gridController, il problema e che l'ho fatto su una versione vecchia di 2 giorni(per i problemi di cui sopra), percui quando riesco a fare sync la rifaccio da capo. Ho introdotto un interfaccio gridControllerState con un metodo update, che ritorna un tipo gridControllerState. In questo modo la succesione degli stati è affidata agli stati stessi. Per ora ho solo suddiviso in stati(pre insert gempair, postInsertGemPair e gameOverState), ma prevedo di inserire anche lo stato per le crush. Magicamente ( ![]() |
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11782
|
Molto bene, quel codice urlava per uno State pattern
![]()
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1545
|
hmmm ma hai commitato?
|
![]() |
![]() |
![]() |
#12 | |
Senior Member
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
|
Quote:
per lo state vedo se riesco a fare qualcosa entro stasera, se no mi ci metto domani(o solo la mattina prima del lavoro e la sera per committare...) |
|
![]() |
![]() |
![]() |
#13 | |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1545
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
|
alcune classi hanno viaggiato parecchio, ho appena creato 2 package per gli state e per le action e le ho raggruppate li dentro(in grid si faceva casino..)
|
![]() |
![]() |
![]() |
#15 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1545
|
Ci avevo pensato anche io ma Fek mi ha fermato.. Puoi rimetterle come prima?
Per favore potresti mica testare gli state che hai implementato? |
![]() |
![]() |
![]() |
#16 | |
Senior Member
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
|
Quote:
gli state e le action in un unico package sono molto incasinate... per i test, ho in programma di farli, voglio spezzare ulteriormente il crushState in 2 e poi incomincio. |
|
![]() |
![]() |
![]() |
#17 | |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1545
|
Quote:
|
|
![]() |
![]() |
![]() |
#18 |
Senior Member
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
|
ho un problema...
sto ulteriormente suddividendo crushState, e ho notato un comportamento non necessario. Quando viene chiamato crushState, prima di fare la prima crush, controlla droppedGemCanMoveDown(). Questo fa funzionare molti test, ma non è una necessaria. Mi spiego... in game, la crushState viene chiamata dopo che la gemsPair e arrivata sul fondo, percui questo controllo non è necessario(altri controlli fra le varie crush finiranno in un altro stato). pero nei test questo comportamento è utile, visto che di solito si inseriscono le gemme, si inserisce e si stoppa una gemsPair, la si fa cadere e poi incominciano le crush. Questo è un comportamento non necessario, ma utile. Penso per adesso di riuscire a replicare il comportamento precedente, ma sarebbe da valutare se mantenerlo anche in futuro(ci sarebbero da cambiare parecchi test...) |
![]() |
![]() |
![]() |
#19 | |
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11782
|
Quote:
Ma dopo la First Playable. Fino al 21 siamo concentrati sulla check list e dobbiamo posticipare i grossi refactoring e accumulare qualche debito.
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
![]() |
![]() |
![]() |
#20 | |
Senior Member
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
|
Quote:
il grosso problema e che il comportamento alla prima crush è diverso dalle successive. btw sono solo a 3 test falliti, ci sono quasi |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:40.