[SFML 2.0] Drganie obiektów gry podczas przemieszczania
Ostatnio zmodyfikowano 2013-07-15 18:37
Wicon Temat założony przez niniejszego użytkownika |
» 2013-07-15 18:37:31 Dobra. Zrobiłem coś takiego: double fpstime; DWORD oldtime = GetTickCount(), newtime; while( oknoAplikacji.isOpen() ) { newtime = GetTickCount(); fpstime = newtime > oldtime ?( newtime - oldtime ) / 1000.0f : 0.0f; oldtime = newtime; while( oknoAplikacji.pollEvent( zdarzenie ) ) { x -= v * fpstime * playerspeed; }; }; No to co może mieć znaczenie to chyba wypisałem. Kodu brak, żeby inni nie brali gotowca i też się trochę pomęczyli. (Szczęśliwy to programista, który potrafi używać mózgu:)) Drgania w zasadzie ustąpiły. Są tak nieznaczne, że gracz może pomyśleć, że są one celowe. Przynajmniej już oczopląsu od tego nie dostaje. EDIT: Postanowiłem pomimo upływu wielu miesięcy otworzyć temat na nowo i zaktualizować rozwiązanie problemu, ponieważ to wyżej nie jest całkowicie poprawne. Jak się okazało rozwiązanie jest banalne. Wystarczyło zmienić miejsce aktualizacji pozycji w kodzie. Tzn. zmienne x i y aktualizuje w pętli ze zdarzeniami, a metodę ".SetPosition (x,y)" dla obiektów wywołuję poza pętlą zdarzeń przed samym rozpoczęciem renderowania obiektów. Dzięki temu podczas przemieszczania interfejs nie będzie drgał i skakał. Mam nadzieję, że komuś to kiedyś pomoże. :) |
|
1 2 3 « 4 » |