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 timervi posto il codice in questione nella speranza che qualcuno mi riesca a dare una dritta a riguardo..
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..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"); } }

 
			
			 
			 
					
					
					
						 Rispondi quotando
  Rispondi quotando