[SFML] Pętla sałokrokowa
Ostatnio zmodyfikowano 2013-12-09 16:45
kokon Temat założony przez niniejszego użytkownika |
[SFML] Pętla sałokrokowa » 2013-12-08 15:00:34 Witam! Według tego tutoriala [url]http://devblog.alfa-leporis.cba.pl/index.php/kurs-sfml2/czas-petla-stalokrokowa-i-operowanie-widokiem/[/url] zrobiłem sobie pętlę stałokrokową. Problem w tym, że ta pętla przyśpiesza. Zamieszczam kod, który ma odpowiadać za obracanie sprite'a (Zmienia samą zmienną odpowiadającą za kąt). sf::Clock clockshine; float accumulatorshine = 0; float TIME_STEP_SHINE = 0.03f;
accumulatorshine += clockshine.restart().asSeconds(); if( accumulatorshine > TIME_STEP_SHINE ) { if( rotateshine >= 360.0 ) rotateshine = 0.0; else rotateshine += 0.0001; accumulatorshine -= TIME_STEP_SHINE; };
Na początku wszystko działa dobrze, ale im dłużej działa aplikacja, tym obraz obraca się szybciej. Jeszcze kod ustalający obrót (tak, obracam za pomocą jednej zmiennej dwa sprite'y ale obydwa przyśpieszają. Dodatkowo wyświetlanie ich jest umieszczone w innej pętli stałokrokowej (tak łatwiej było ustawić szybkość obrotu)): shinezero.rotate( rotateshine ); shineone.rotate( - rotateshine ); oknoAplikacji.draw( shinezero ); oknoAplikacji.draw( shineone ); |
|
pekfos |
» 2013-12-08 15:06:33 Zamiast rotate() użyj setRotation(). |
|
kokon Temat założony przez niniejszego użytkownika |
» 2013-12-08 15:21:17 Dzięki wielkie, jak na razie działa świetnie, aczkolwiek zostawię program na jeszcze trochę i zobaczę czy nie przyśpieszy ;P |
|
Mitu |
» 2013-12-09 16:45:59 Sprawdź sobie jaka jest różnica między rotate() a setRotation(). |
|
« 1 » |