- Home
- Categorie
- Digital Marketing
- Grafica, Visual Design & UX
- [Risolto] Gioco in flash: problema timer
-
[Risolto] Gioco in flash: problema timer
Salve a tutti, ho da poco realizzato un semplice giochino in flash che si rifà- con le debite differenze- a super mario. In poche parole c'è un personaggio che raccoglie delle cose. Ho creato una tabella per i punti e per le vite e poi hon creato un timer per rendere il gioco meno noioso. Il timer conta partendo da 30 secondi fino ad arrivare a zero; a questo punto si cambia livello e il timer inizia di nuovo a fare il conto alla rovescia partendo da 30. Fin qui tutto a posto: i problemi sorgono quando all'ultimo livello schiacciando il pulsante "Gioca ancora", che rimanda al fotogramma 1, il timer va in tilt e invece che diminuire aumenta e siccome il passaggio da un livello all'altro è legato al timer il mio gioco rischia di non finire mai. Questo è il codice che ho usato per impostare il timer, se può essere utile a chi volesse darmi qualche consiglio:
[INDENT]function wait() {
mySeconds--; //sottrae 1 a mySeconds
if(_root.mySeconds==0) {
_root.mySeconds.stop;
gotoAndStop(2);}
}
myTimer = setInterval(wait, 1000);[/INDENT]Spero di essere riuscito a spiegarmi nel migliore dei modi. Se qualcuno sa come aiutarmi gliene sarei molto grato.Ciao a tutti!
-
Ciao Ludo,
il valore di mySeconds dove viene rimpostato?:bho:
-
Innanzitutto grazie per aver risposto: io ho creato una casella ti testo dinamico nella quale ho inserito il valore 30 e a questa casella di testo ho associato il nome istanza "myTimer" e come variabile "my Seconds". Il tutto inserito in un fotogramma chiave in cui è scritto il codice che ho indicato prima. Spero di aver risposto in maniera esauriente alla tua domanda e che tu possa darmi una mano. Grazie ancora.A presto
-
La mia domanda era con il dubbio che il valore di mySeconds non sia giusta.
Hai provato a metterci un trace(mySeconds); nella funzione per vedere che ti restituisce?:?Un altra cosa, quale sarebbe l'uso di _root.mySeconds.stop;
-
Per quanto riguarda _root.mySeconds.stop; è un errore, un tragico tentativo di fermare il mio timer...Ho seguito il tuo consiglio e all'interno del codice ho inserito una trace(mySeconds): credo che il problema sia nel fatto che nella trace mi viene il conto alla rovescia ma arrivato a zero il countdown continua cn -1,-2,-3, ecc... Dovrei trovare il modo di fermare il timer all'interno della funzione ma come fare?
-
per fermare il timer devi bloccare l'intervallo
function wait() {
mySeconds--; //sottrae 1 a mySeconds
if(_root.mySeconds==0) {
_root.mySeconds.stop;
gotoAndStop(2);**
clearInterval(myTimer)**
}
}
myTimer = setInterval(wait, 1000);
-
Grazie per avermi aiutato. Ora è tutto a posto. Ciao a tutti!