mateusz00 Opublikowano 28 Lutego 2010 Opublikowano 28 Lutego 2010 Mam pytanie. Robię na czas, ale nie wiem jak zrobić naliczanie czasu od zera do 120. Czy mógł by mi ktoś w tym pomóc :rolleyes:
candy Opublikowano 28 Lutego 2010 Opublikowano 28 Lutego 2010 Ja bym to zrobił tak: Create: GML a=false; b=false;//jednostka czasu</span> Step GML if(a==room_speed)//albo inny warunek (taki jaki Ci jest potrzebny) { a=false; b+=1; if(b==120) { //akcja } } a+=1;
Gość Opublikowano 28 Lutego 2010 Opublikowano 28 Lutego 2010 CREATE: GML alarm[0]=room_speed odliczanie_czasu=0 ALARM 0: GML odliczanie_czasu+=1 alarm[0]=room_speed DRAW: GML draw_text(x,y,"Pozostało:"+string(odliczanie_czasu))
mateusz00 Opublikowano 28 Lutego 2010 Autor Opublikowano 28 Lutego 2010 dzięki, skorzystałem z dwóch przykładów :thumbsup:
Pieter Opublikowano 28 Lutego 2010 Opublikowano 28 Lutego 2010 dzięki, skorzystałem z dwóch przykładów :thumbsup: po co aż dwóch?
Muuuuczek567 Opublikowano 28 Lutego 2010 Opublikowano 28 Lutego 2010 CREATE:GML alarm[0]=room_speed odliczanie_czasu=0 ALARM 0: GML odliczanie_czasu+=1 alarm[0]=room_speed DRAW: GML draw_text(x,y,"Pozostało:"+string(odliczanie_czasu)) Jak już, to: Create: GML alarm[0]=room_speed odliczanie_czasu = 120 Alarm 0: GML odliczanie_czasu -= 1 alarm[0]=room_speed
Nobody Opublikowano 28 Lutego 2010 Opublikowano 28 Lutego 2010 Ja bym to radził zrobić dzięki zmiennej current_time. Dzięki temu, gdy komputer spowolni pracę i FPS nie będzie równy room_speed i tak odliczony czas będzie ten sam. Sposób: GML (Create) start = current_time; GML (Step) if( floor( ( current_time - start ) / 1000 ) ) == 120 ) { // akcja } Current_time zwraca nam ilość milisekund, które upłynęły od czasu włączenia komputera. Obliczając różnicę current_time teraz i przy uruchomieniu aplikacji możemy się dowiedzieć jak długo działa nasza aplikacja ( czyli ile czasu już odliczyła ) w milisekundach. Dlatego dzielimy to przez 1000 i zaokrąglamy, aby uzyskać naturalną liczbę sekund.
Muuuuczek567 Opublikowano 28 Lutego 2010 Opublikowano 28 Lutego 2010 Czyli na wolniejszych komputerach gracz będzie miał mniej czasu niż na tych szybszych?
Markar Opublikowano 28 Lutego 2010 Opublikowano 28 Lutego 2010 O to chodzi że wszędzie będzie tak samo.
Muuuuczek567 Opublikowano 28 Lutego 2010 Opublikowano 28 Lutego 2010 Chodzi o to, że u mnie działa to w 2 minutach w grze, a Nobody robi to w 2 minutach rzeczywistych. Jeśli zetnie kompa, to u Nobody'ego gracz będzie miał mniej czasu niż u mnie, ponieważ czas w grze się zatrzyma, a u Nobody'ego będzie dalej leciał.
mateusz00 Opublikowano 28 Lutego 2010 Autor Opublikowano 28 Lutego 2010 po co aż dwóch? bo w jednym było z draw a w drugim nie
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się