|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jul 2005
Città: Silent Hill
Messaggi: 1471
|
NormalGravity in GameConfig
Per sistemare il problema delle gemme che cadono troppo velocemente (nato dall'eliminazione di qualche costante qui e là nel codice) bisogna dividere per due il valore di normalGravity.
Peccato che il suo valore sia 1, e che GameConfig utilizzi valori interi. Che si fa? Lo si converte in float? Se sì, rischiamo qualche imprecisione per l'approssimazione dei valori decimali (in passato ho avuto brutte sorprese al riguardo )?La cosa va sistemata, e la gravità è un punto piuttosto delicato (è stata fonte di un sacco di bug).
__________________
DIAMOND CRUSH - Aut viam inveniam, aut faciam. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
|
GravityMultiplier = 8
StrongestGravityMultiplier = 20 NormalGravity = 1 prova a giocare con il GravityMultiplier |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1545
|
Possiamo rinominarli in maniera piu` sensata? Direi che i nomi potrebbe deciderli Joc dopo che qualcuno gli ha spiegato che fanno
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jul 2005
Città: Silent Hill
Messaggi: 1471
|
Più che altro, quando viene usato GravityMultiplier? StrongestGravity è abbastanza autoesplicativo invece
__________________
DIAMOND CRUSH - Aut viam inveniam, aut faciam. |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jul 2005
Città: Silent Hill
Messaggi: 1471
|
Cambiando GravityMultiplier non cambia niente.
In compenso, provate a raddoppiare (ovviamente senza commit) la gravità ed a farvi una partitella... lo spettacolo è assicurato
__________________
DIAMOND CRUSH - Aut viam inveniam, aut faciam. |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Nov 2005
Città: Bologna
Messaggi: 1303
|
A dire il vero qui c'e' un mistero.
Il GravityMultiplier funziona cosi': StrongerGravity= normalGravity * gravityMultiplier; e il StrongestGravityMultiplier cosi' StrongestGravity= normalGravity * strongestGravityMultiplier; quindi attenzione, non si mappano uno a uno. Ora e' cosi' perche' la NormalGravity e' 1. |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Jul 2005
Città: Silent Hill
Messaggi: 1471
|
Aggiunto come bug, va risolto assolutamente.
Qualcuno mi aggiorna sull'esatto significato di questi valori di GameConfig? Codice:
NormalRepeatDelay = 200 FastRepeatDelay = 100 FrameRate = 20 UpdateRate = 10
__________________
DIAMOND CRUSH - Aut viam inveniam, aut faciam. Ultima modifica di Jocchan : 14-03-2008 alle 14:13. |
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
|
Quote:
Codice:
updatePlayField(timestamp);
lastUpdateTimeStamp += updateRate;
score.setValue(getGridController().getGrid().getScoreCalculator().getScore());
updateWarningBox();
updateCrushBox();
updateCounterBox();
Codice:
if (timeStamp - lastRender >= environment.getConfig().getInteger("FrameRate"))
{
lastRender = timeStamp;
environment.getEngine().clearDisplay();
layerManager.drawLayers(environment.getEngine());
environment.getEngine().updateDisplay();
}
|
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
e forse può essere pericoloso cambiarlo perchè molti test settavano dei valori fissati per quei valori anzichè prenderli dal config..
Io quelli che ho visto li ho fixati, ma non ho idea se ancora se ne trovano altri a spasso per il codice con i valori scolpiti..
__________________
|
|
|
|
|
|
#10 | |
|
Senior Member
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
|
Quote:
cmq se vanno cambiati joc, dillo a noi che vediamo se alcuni test vengono rotti, e vediamo di sistermarli(renderli indipendenti dal config) |
|
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Nov 2005
Città: Bologna
Messaggi: 1303
|
ehm...quello del calcolo della gravita' era un requisito del costumer |
|
|
|
|
|
#12 | |
|
Senior Member
Iscritto dal: Jul 2005
Città: Silent Hill
Messaggi: 1471
|
Come rischi più che ai test rotti (se ci sono valori hardcoded non ci vuole niente a cambiarli una volta individuati i test che falliscono
Mi riferivo più a questioni di logica del programma, insomma Quote:
E' segnato come bug perchè non si può settare la gravità ai valori desiderati, mentre prima era possibile Al momento il valore è troppo elevato come gravità "di base", quindi va sistemato per forza in qualche modo. I refactoring che hanno portato a questo problema erano molto massicci? Se c'erano delle costanti sparse qui e là per il codice (come mi è sembrato di capire), cosa cambierebbe se le rimettessimo e magari le rendessimo settabili in GameConfig? Chi se n'era occupato in origine?
__________________
DIAMOND CRUSH - Aut viam inveniam, aut faciam. Ultima modifica di Jocchan : 14-03-2008 alle 19:52. |
|
|
|
|
|
|
#13 | |
|
Senior Member
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
|
Quote:
Ne possono bastare 2? Se si, si elimina un valore e si tiene gravityNormal e gravityStrenght e basta, l'altro si toglie si vede dove ci sono dei problemi, si risolvono e poi siamo puliti. |
|
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
|
Codice:
public void setStrongestGravity()
{
actualGravity = normalGravity * strongestGravityMultiplier;
}
public void setStrongerGravity()
{
actualGravity = normalGravity * gravityMultiplier;
}
public void setNormalGravity()
{
actualGravity = normalGravity;
}
strongerGravity e la gravità di una gemsPair quando si preme il tasto giu strongestGravity e la gravita delle gemme che nn sono gemsPair che cadono verso il basso |
|
|
|
|
|
#15 |
|
Senior Member
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
|
il diviso 2 perso come costante si può recuperare mettendo l'updateRate a 20!!!!!!(aka raddoppiandolo). Il gioco nn dovrebbe risentirne per i test, faccio qualche prova
edit: i test nn si lamentano. cio nn vuol dire che un test che prima aveva senso, ora nn ce l'abbia più...però per me si può rischiare Ultima modifica di thebol : 14-03-2008 alle 22:38. |
|
|
|
|
|
#16 |
|
Senior Member
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
|
ho trovato un problema per questa soluzione.
Ho provato a mettere updateRate a 100, e viene coinvolto anche il pulsare della pivot, che accelera compulsivamente. Stranamente non viene coinvolto il riflesso. Penso che il problema sia nella Grid.updateDroppableAnimations, che viene chiamata nel ciclo controllato dall'updateRate. Eh da vedere come (e se) risolvere la cosa edit: penso di essermi sbagliato, il problema sembra nn essersi(forse avevo smanettato qualcos'altro nella config) Ultima modifica di thebol : 14-03-2008 alle 22:57. |
|
|
|
|
|
#17 | |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
Quote:
![]() l'importante è che non hai committato mentre commitavo io ..altrimenti sai dove andava a finire la torre degli asinelli...vero? !?!?!?
__________________
|
|
|
|
|
|
|
#18 |
|
Senior Member
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
|
|
|
|
|
|
|
#19 | |||
|
Senior Member
Iscritto dal: Jul 2005
Città: Silent Hill
Messaggi: 1471
|
Quote:
Quote:
Anche perchè alla fine non avrei proprio messo 20, ma un 15 (ed ho chiesto quale unità di misura stessimo usando ed eventualmente quali sincronie perderemmo perchè non è un sottomultiplo di 100, quindi se tutto il resto funziona in centesimi di secondo forse qualche problema può sorgere dopo un pò). Quote:
Qualche volta una birretta mi sa che è obbligatoria (già ne avevo parlato con Bonfo)
__________________
DIAMOND CRUSH - Aut viam inveniam, aut faciam. |
|||
|
|
|
|
|
#20 | ||
|
Senior Member
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
|
Quote:
Certo se metti l'updateRate ogni ms, e il frameRate ogni 100ms, il gioco scatterà, vistosamente, però è fisiologico. Sincronia di gioco nn si dovrebbe perdere, al max da vedere può fare schifo. Cmq nn sono centesimi ma millesimi di secondo. Quote:
![]() ps.xkcd > all Ultima modifica di thebol : 15-03-2008 alle 10:43. |
||
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:11.










)?











