sicio Napisano 15 Czerwiec 2011 Napisano 15 Czerwiec 2011 (edytowane) Witam Właśnie tworzę projekt prostej gry w blender game engine. W skrócie postać poruszająca się po wyspie(ruchy mocap) ma dojść do określonego miejsca na planszy w określonym czasie. Narazie udało mi się stworzyć poruszanie, motion capture nie wychodzi mi to zająłem się resztą... Chcę zrobić aby, w którymś rogu widniał zegar, który odlicza czas po którym wyspa zostanie zalana. I nie mam pojęcia jak to zrobić. Nie mogę znaleźć w ogóle tutoriala o tworzeniu zegara cyfrowego. Ma ktoś może jakieś podpowiedzi Znalazłem texture plugin o nazwie LED http://www.five-o-clock.de/blender_plugins/led.html ma ktoś doświadczenie jak używać takie pluginy? Mi wyskakuje komunikat że nie jest przystosowany na Windows... Edytowane 15 Czerwiec 2011 przez sicio
Temat Napisano 15 Czerwiec 2011 Napisano 15 Czerwiec 2011 Witaj Nie wiem czym jest Framework w ktorym tworzysz swoja grę ,ale moim zdaniem najlepsze rozwiązanie dla animacji odbywajacych się w czasie rzeczywistym to wyliczanie czasu na podstawie ilosci wyswietlonych klatek. Przykladowo zalozmy ze dla swojej gry przyjmujesz stale 30fps . W tym momencie kazda klatka musi byc wyswietlana co 1/30 sekundy czyli 30 milliseconds i to jest minimalna skala czasowa przy tylu fps jaka jestes w stanie osiagnac. Czyli jak widać sprawa jest banalnie prosta jezeli wystarczy ci dokladnosc co do sekundy ,z kazdym wyswietleniem klatki robisz "i++" dla zmiennej calkowitej (int) "i" której wartośc wyraza ilosc wyswietlonych klatek od uplyniecia ostaniej sekundy (co jednoczesnie jest wartoscia w czasie i = i * 30ms). W momencie gdy "i = 30" uplywa sekunda wtedy stosujesz odpowiedni warunek aby i zerujesz sobie i "i=0" a do swojej wartosci odpowiadajacej za calkowity czas trwania animacji dodajesz 1 sekunde. Jaka typowa zmienna mozesz wykorzystac jakokolwiek klase/strukture sluzacą do zapisu czasu w "chrzescijanskim formacie" Day:Hour:Minute:Second. Sprawi to ze nie bedziesz podawal czasu rzeczywistego czasu jaki uplynol w formie np. 60000 sekund :). Aby uzyskac wieksza dokladnosc co do 0.1 sekundy algorymtm wyglada identycznie z tym ze dodajesz kazda "dziesiata sekundy" co 3 klatki i pozniej z kazdych 10 * 0.01 tworzysz jedna sekunde. Jak nietrudno zauwazyc sposob z warunkiem i=30 i wlasciwe przeliczanie pozwala nam osiagnac maxymalna dokladnosc czy do 1/30s(30ms). Taki algorytm sprawdza się w 100% i synchronizuje z czasem rzeczywistym gdy mamy stale 30fps jednak z czasem "urojonym w grze" spisuje sie zawsze idealnie. Teraz nalezy sobie zadac pytanie jaki czas jest tym wlasciwym? . Jezeli nie chcialbys aby plynnosc animacji miala wplyw na rzeczywisty czas musisz użyć zegara czasu rzeczywistego komputera w Windowsie na ktorym dziala aplikacja (przestrzen nazw Windows.System.) i na jego podstawie wyliczac czas jaki aktualnie uplynol.
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ę