[SFML 1.6] Pozycjonowanie przemieszczanie Sprajta
Ostatnio zmodyfikowano 2012-07-23 13:29
wojownik266 Temat założony przez niniejszego użytkownika |
[SFML 1.6] Pozycjonowanie przemieszczanie Sprajta » 2012-07-23 10:21:47 Witam. Mamy dwa fragmęty programu, które robią to samo. Pierwszy fragment:
poz.y -= 0.05; Sprajt.SetPosition( poz.x, poz.y );
Drugi fragmęt:
poz.y -= 0.05; float ElapseTime = App.GetFrameTime(); Sprajt.Move( poz.x, poz.y * ElapsedTime );
Jak wspomniałem oba fragmęty programu robią to samo czyli skrolują Sprita od dołu do góry. Czy oba te programy są równowazne i mozna ich uzywać zamiennie? Albo kiedy używać funkcji pierwszej a rezygnować z drugiej? |
|
DejaVu |
» 2012-07-23 12:42:36 Nie są zamienne. Poza tym jeżeli mnożysz tylko jedną współrzędną to prosisz się o problemy. Jeżeli mnożysz przemieszczenie razy czas jaki upłynął to 'gwarantujesz', że niezależnie od liczby wyświetlanych klatek, że obiekt po X sekundach będzie zawsze tak samo daleko. Jeżeli nie pomnożysz względem czasu jaki upłynął to mając 300 klatek na sekundę obiekt będzie kilkukrotnie dalej niż w przypadku gdy ktoś będzie posiadał 60 klatek.
PS. Mnoży się deltę przesunięcia obiektu, a nie położenie obiektu. |
|
wojownik266 Temat założony przez niniejszego użytkownika |
» 2012-07-23 13:29:38 No i to własnie chciałem wiedzieć. Dziękuje! |
|
« 1 » |