18. januar 2007 - 21:08Der er
10 kommentarer og 1 løsning
Tidstagning i spil
Jeg har en funktion der tager tid på at gennemføre en bane. Når man når næste bane skal tiden stoppe indtil brugeren aktivere næste level. Problemet er nu, at når næste level aktiveres tracer tiden også den tid der er gået mellem levels. Jeg har brugt nedenstående koder:
aktiverKnapper = function () { if (timing == null) { tidBrugtStart = getTimer()/1000; } function brugtTid() { tidBrugt = (getTimer()/1000-tidBrugtStart); minutes_mc.text = minutes; seconds_mc.text = seconds; timing = true; if (timing) { minutes = Math.floor((tidBrugt/3600-hours)*60); seconds = Math.floor(((tidBrugt/3600-hours)*60-minutes)*60); if (seconds<10) { seconds = "0"+seconds; } if (minutes<10) { minutes = "0"+minutes; } } } brugtTid_interval = setInterval(brugtTid, 1000); };
levelDone = function () { clearInterval(brugtTid_interval); levelNummer++; }
Hvis det er meningen at "tidBrugtStart" skal resettes skal du vel lige sætte timing til null? Derudover er det noget hø at have funktionsdefinitioner i funktioner, du skal jo ikke redefinere din brugtTid funktion hver gang du kalder aktiverKnapper?
Så læste jeg faktisk også hvad du skrev. Jeg har nu tilføjet timing=null i levelDone funktionen. Nu starter counteren så bare forfra i næste level. Det er meningen den skal fortsætte hvor den slap.
Det er altid sjovt at lege med tid, så jeg har lavet et eksempel til dig på hvordan man kan lave et stopur med pauseknap (alle tastaturknapper virker i mit eksempel) :-D
Super. Tak. Det andet jeg skrev tidligere ser ud til at virke. Kan du se nogle ulemper ved at gøre det på den måde eller er det rigtigt at gøre det på den måde?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.