Skocz do zawartości

Featured Replies

Napisano

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 przez sicio

  • Odpowiedzi 1
  • Wyświetleń 2,4k
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Napisano

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.

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności