Przyspieszanie ruchu animacji
Ostatnio zmodyfikowano 2012-12-10 20:44
mostrom Temat założony przez niniejszego użytkownika |
Przyspieszanie ruchu animacji » 2012-12-10 20:44:05 Witam! Napisałem sobie klasę która zAnimizuje mi obrazek. Jednak nie mogę się uporać z niezależną prędkością animacji. Ciągle mam problem z względnością ruchu. Jeden timer reguluje mi ilość renderowanych klatek gry na sekundę (czyli ile razy w ciągu sekundy ma wykonać się pętla główna. A co z animacją? Przyspieszając jej ruch będę musiał omijać parę klatek animacji? To bez sensu. Puszczać ją w drugim wątku? Też wydaje mi się zbędne. Proszę o jakieś ciekawe propozycje, bo myślę i szukam i nie mogę iść naprzód z projektem ;/ Dodam, że szybkość wykonania się animacji będzie zależna od np czasu działania aplikacji (czyli przyspiesza płynnie), lub stopniowo (co ileś punktów gracza postać przyspiesza) EDIT: Znalazłem potrzebne informacje. Operator % jest niezastąpiony, jednak ciągle nie wiem kiedy go użyć :p Mechanizm obliczania klatek: class Ludzik { public: Ludzik() : max( 20 ) , klatka( 0 ) , czas_startu( 0 ) { } ~Ludzik(); bool start_anim { czas_startu = SDL_GetTicks(); } bool anim_szybkoscia( int v ) { klatka =(( SDL_GetTicks() - czas_startu ) * max / t ) % max; } bool anim_czasem( int t ) { klatka =(( SDL_GetTicks() - czas_startu ) * v / 1000 ) % max; } private: int klatka; int czas_startu; int max; };
|
|
« 1 » |