BlueDragon
28-04-2006, 22:25
A volte è possibile ottenere e muovere una gemma solitaria:
mi sono accorto di una cosa
faccio un esempio... mettiamo caso che escano 2 gemme, una rossa e, quella inferiore (che ne sò) di colore verde
la pila esattamente sotto a dove escono è alta 2 righe meno del massimo (del game over) e come primo elemento in alto ha un box verde
di solito capita che la gemma inferiore della coppia e il box che si trova in cima alla pila (dello stesso colore) spariscono immediatamente (questo perchè a quanto vedo la coppia entra direttamente nelle prime due righe della griglia, non parte da "fuori" dalla griglia, vale a dire dall'imbutino che si vede in alto)... mentre la seconda (quella in alto) gemma della coppia uscita (che è rimasta da sola essendo sparita l'altra assieme al primo elemento della pila) cade ad una velocità un po' superiore al normale verso la pila e qui si ferma
e fin qui credo che sia giusto, insomma che sia il comportamento corretto
una (sola) volta però mi è capitato di riuscire a spostare la gemma "supersite" della coppia verso destra...
in poche parole avevo una sola gemma che cadeva e che potevo controllare spostando a dx o sx come volevo (non ho provato a ruotarla per vedere cosa succedeva purtroppo)
ecco, in questo caso non so se il comportamento sia corretto
spero di essere riuscito a spiegarmi
Direi che il seguente codice in GridController ha buone possibilità di esserne la causa...che ne dite? :)
public void insertNewGemsPair()
{
Droppable gem;
if(!grid.isGemAt(1, 4))
{
gem = gemGenerator.extract();
grid.insertGem(1, 4, gem);
gemsPair.setPivotGem(gem);
gem = gemGenerator.extract();
grid.insertGem(0, 4, gem);
gemsPair.setSlaveGem(gem);
}
else
{
gem = gemGenerator.extract();
grid.insertGem(0, 4, gem);
gemsPair.setPivotGem(gem);
gemsPair.setNoSlaveGem();
}
++numberOfPairInserted;
}
Il codice permette l'inserimento di una gemma solitaria, poi sfruttando il lasso di tempo che intercorre tra la creazione della gemma solitaria ed il riconoscimento del GameOver, un giocatore molto rapido (o con delle mosse già bufferizzate dalla tastiera) potrebbe muovere via la gemma....regge come ipotesi? :)
Ho anche appena riprodotto il baco..è bastato impilare tutte le gemme lasciando solo 1 riga libera in alto e tenendo premuto sinistra non appena l'ultima gemspair regolare si è posata.
EDIT: Ho anche riprovato e non ci sono riuscito...ora tocca trovare perché riesce solo a volte :)
mi sono accorto di una cosa
faccio un esempio... mettiamo caso che escano 2 gemme, una rossa e, quella inferiore (che ne sò) di colore verde
la pila esattamente sotto a dove escono è alta 2 righe meno del massimo (del game over) e come primo elemento in alto ha un box verde
di solito capita che la gemma inferiore della coppia e il box che si trova in cima alla pila (dello stesso colore) spariscono immediatamente (questo perchè a quanto vedo la coppia entra direttamente nelle prime due righe della griglia, non parte da "fuori" dalla griglia, vale a dire dall'imbutino che si vede in alto)... mentre la seconda (quella in alto) gemma della coppia uscita (che è rimasta da sola essendo sparita l'altra assieme al primo elemento della pila) cade ad una velocità un po' superiore al normale verso la pila e qui si ferma
e fin qui credo che sia giusto, insomma che sia il comportamento corretto
una (sola) volta però mi è capitato di riuscire a spostare la gemma "supersite" della coppia verso destra...
in poche parole avevo una sola gemma che cadeva e che potevo controllare spostando a dx o sx come volevo (non ho provato a ruotarla per vedere cosa succedeva purtroppo)
ecco, in questo caso non so se il comportamento sia corretto
spero di essere riuscito a spiegarmi
Direi che il seguente codice in GridController ha buone possibilità di esserne la causa...che ne dite? :)
public void insertNewGemsPair()
{
Droppable gem;
if(!grid.isGemAt(1, 4))
{
gem = gemGenerator.extract();
grid.insertGem(1, 4, gem);
gemsPair.setPivotGem(gem);
gem = gemGenerator.extract();
grid.insertGem(0, 4, gem);
gemsPair.setSlaveGem(gem);
}
else
{
gem = gemGenerator.extract();
grid.insertGem(0, 4, gem);
gemsPair.setPivotGem(gem);
gemsPair.setNoSlaveGem();
}
++numberOfPairInserted;
}
Il codice permette l'inserimento di una gemma solitaria, poi sfruttando il lasso di tempo che intercorre tra la creazione della gemma solitaria ed il riconoscimento del GameOver, un giocatore molto rapido (o con delle mosse già bufferizzate dalla tastiera) potrebbe muovere via la gemma....regge come ipotesi? :)
Ho anche appena riprodotto il baco..è bastato impilare tutte le gemme lasciando solo 1 riga libera in alto e tenendo premuto sinistra non appena l'ultima gemspair regolare si è posata.
EDIT: Ho anche riprovato e non ci sono riuscito...ora tocca trovare perché riesce solo a volte :)