Salve ragazzi, sono alle prese con un problema che sembra essere banale, ma non ne riesco a venire a capo.
Sto realizzando Forza4 e per implementare dei livelli ho deciso di creare un countDown che al suo scadere genera tramite un random una colonna dove inserisce una pallina. Sono riuscito a far questo con il mio gruppo di lavoro, ma ovviamente l'obiettivo del gioco non è quello di far scadere il timer, quindi il countDown ogni qual volta premo un JButton che mi fa inserire una pallina deve stopparsi e poi riprendere da capo, ma io ottengo una sovrapposizione come se fossero due timer
vi posto il codice in questione nella speranza che qualcuno mi riesca a dare una dritta a riguardo..
codice:
static class CountDown
{
private static ActionListener action;
private static int attesa = 1000;
private static GiocoForza4 f4;
private static Timer t;
private static int valoreTimer = 5;
private static int count = valoreTimer;
public static void start()
{
action = new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
// versione alternativa
if(valoreTimer >= 0)
{
time2.setText(" " + valoreTimer + " ");
System.out.println(valoreTimer);
valoreTimer--;
}
else
{
((Timer) e.getSource()).stop();
//System.out.println("E' 0 e vado in else");
//t.stop();
Griglia.random(); // questo genera il Random
valoreTimer = count;
}
}
};
t = new Timer(attesa, action);
t.start();
//System.out.println("Ora ti stoppo");
//t.stop();
}
public static void fermati()
{
if(t.isRunning())
{
t.stop();
}
System.out.println("PROVA STOP");
System.out.println("Prova dopo STOP");
}
}
ho postato solo la parte di codice relativa al timer perchè dopo il resto funziona bene e anche quando richiamo lo stop, sembra che venga chiamato nel punto giusto come mi dimostrano i messaggi di output..cmq qualora servisse posto tutto..