• User Newbie

    [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!


  • Super User

    Ciao Ludo,

    il valore di mySeconds dove viene rimpostato?:bho:


  • User Newbie

    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


  • Super User

    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;


  • User Newbie

    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?


  • User Attivo

    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);


  • User Newbie

    Grazie per avermi aiutato. Ora è tutto a posto. Ciao a tutti!