Volledige versie bekijken : probleem met weergeven van tijd
Jitze.Pieter
%Europe/Berlin %579 %2010, 13:54
Hallo allemaal,
Ik wil een tijd laten lopen zolang een speler bezig is met een spel, dat als de speler klaar is hij/zij kan zien hoe lang de speler bezig is geweest.
Nu ben ik de Timer() en de Date() classes tegengekomen maar heb niet echt een idee welke ik nu moet gebruiken of wat de beste manier hiervoor is.
Heeft iemand goede tips/tutorials, de gene die opinternet staan vind ik moeilijk toe te passen in mijn eigenscript.
Groet,
Jitze
Jitze.Pieter
%Europe/Berlin %622 %2010, 14:56
Ondertussen ben ik bezig gegaan met de Date() class en er loopt nu een tijd in een textfield maar de tijd begint te lopen vanaf het tijdstip dat het op dat moment is.
Hoe kan ik de teller op 00:00:00 laten beginnen en dan laten oplopen??
Iemand een goede tip of een goed voorbeeld?
Alvast bedankt,
marcvz
%Europe/Berlin %623 %2010, 14:58
Kijk eens naar getTimer.
http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/utils/package.html#getTimer()
Jitze.Pieter
%Europe/Berlin %626 %2010, 15:02
Oke dat is handig die haalt dus de tijd op die verstreken is sinds de flashplayer is gestart in miliseconden. Hoef ik dus alleen maar daar mooie getallen van te maken.
Ik ga het snel proberen.
Thanks
Jitze.Pieter
%Europe/Berlin %629 %2010, 15:06
Maar ik zie gelijk al een probleem ik start mijn flashplayer al eerder dan ik echt met het spelletje begin, dus je krijgt eerst een menu en dan begin ik pas met het spel als ik dan gettimer trace staat hij al ver boven de nul omdat de player al langer draait.
Dus dit is volgens mij niet wat ik echt nodig heb?
shellshock
%Europe/Berlin %631 %2010, 15:08
Hiervoor kan je timer gebruiken. Nu kan je het op 2 verschillende manieren doen. Het is maar hoe je de tijd later wilt weergeven.
1. Je maakt 3 variable aan (of 2). één voor de secondes en één voor de minuten en misschien nog wel voor de uren maar ik zie daar nut nog niet van in aangezien niet iedereen uren aan het spelen is.
2. Je kan het ook alleen voor de secondes doen en dat weer delen door 60 dan heb je de minuten. etc.
Hier onder heb ik nummer 1 ff snel getypt, kan fouten bevatten:
var ss:uint = 0;
var mm:uint = 0;
var GameTimer:Timer = new Timer(1000, 60); //Gaat om de seconde en herhaalt 60X
GameTimer.addEventListener(TimerEvent.TIMER, elkeSeconde);
GameTimer.addEventListener(TimerEvent.TIMER_COMPLE TE, elkeMinuut);
GameTimer.start();
function elkeSeconde(e:TimerEvent):void //Dit wordt aangeroepen elke 1000 milli sec.
{
ss++
}
function elkeMinuut(e:TimerEvent):void //Dit wordt aangeroepen als de timer klaar is.
{
ss = 0;
mm ++;
GameTimer.reset();
GameTimer.start(); // Start op nieuw
}
Hoop beetje duidelijk is. Anders kun je hier ook aardig wat info vinden: http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/utils/Timer.html
marcvz
%Europe/Berlin %634 %2010, 15:13
Maar ik zie gelijk al een probleem ik start mijn flashplayer al eerder dan ik echt met het spelletje begin, dus je krijgt eerst een menu en dan begin ik pas met het spel als ik dan gettimer trace staat hij al ver boven de nul omdat de player al langer draait.
Dus dit is volgens mij niet wat ik echt nodig heb?
Je kunt toch de getTimer waarde opslaan als ze met het spelletje beginnen. En deze aftrekken van de getTimer waardes die daarna volgen.
Jitze.Pieter
%Europe/Berlin %636 %2010, 15:16
Je kunt toch de getTimer waarde opslaan als ze met het spelletje beginnen. En deze aftrekken van de getTimer waardes die daarna volgen.
Dat zou inderdaad ook nog kunnen ja, ik ga het proberen bedankt voor alle reacties.
Nreal
%Europe/Berlin %501 %2010, 12:01
Zodra je spel begint een timestamp opslaan in een variabele met:
startTime = new Date().getTime();
En nu zodra hij klaar is doe je het volgende:
var time:Date = new Date(new Date().getTime() - startTime);
trace(time.getHours(), time.getMinutes(), time.getSeconds());
nu kan je alles opvragen wat je wilt van die tijd.
Hopelijk is dit wat je zoekt.
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.