.[ ČeskéHry.cz ].
SDL - výpočet FPS

 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Obecné
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
Hanz...SDL



Založen: 19. 11. 2009
Příspěvky: 24

PříspěvekZaslal: 15. září 2010, 18:57:01    Předmět: SDL - výpočet FPS Odpovědět s citátem

Zdravim,

Chtěl bych se zeptat jak mám v C+SDL vypočítat FPS??
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Kaemon



Založen: 28. 07. 2007
Příspěvky: 33

PříspěvekZaslal: 15. září 2010, 19:12:35    Předmět: Re: SDL - výpočet FPS Odpovědět s citátem

Funkce SDL_GetTicks vrací počet milisekund od startu programu.
Pokud změříš čas před vykreslením(+herní logika) a po vykreslení a odečteš je (po-před) dostaneš čas jak dlouho trvalo vykreslit 1 snímek.
1000/"trvání 1 snímku" = FPS
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Hanz...SDL



Založen: 19. 11. 2009
Příspěvky: 24

PříspěvekZaslal: 15. září 2010, 19:20:34    Předmět: Re: SDL - výpočet FPS Odpovědět s citátem

jj díky to jsem už tam nějak vyřešil ale tedka bych to chtěl zobrazit na obrazovku a v tom je docela problém...

float fps = 1000.0f / dt;

text = TTF_RenderText_Solid(font, fps, col);
if (text != NULL) {
SDL_BlitSurface(text, NULL, screen, &rect);
SDL_FreeSurface(text);
}

nevíš jak by to šlo obejít abych to zobrazil pomocí TTF (když dám 2. argument funkce TTF_RenderText_Solid() float, tak to vypíše chybovou hlášku že argument má být typu const char * a ne float) nebo pomocí čeho bych to měl zobrazit to fps??
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Kaemon



Založen: 28. 07. 2007
Příspěvky: 33

PříspěvekZaslal: 15. září 2010, 19:40:23    Předmět: Re: SDL - výpočet FPS Odpovědět s citátem

pomocí funkce sprintf převedeš číslo na řetězec - http://www.cplusplus.com/reference/clibrary/cstdio/sprintf/

kód:
char text[10];
sprintf (text, "%f", fps);
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
frca



Založen: 28. 07. 2007
Příspěvky: 1558

PříspěvekZaslal: 15. září 2010, 19:46:54    Předmět: Odpovědět s citátem

Když už, tak takto
kód:
char text[10] = {0};
snprintf (text, 9, "%f", fps);

a to z důvodu prevence obtížně laditelných chyb.
_________________
www.FRANTICWARE.com
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Hanz...SDL



Založen: 19. 11. 2009
Příspěvky: 24

PříspěvekZaslal: 15. září 2010, 20:05:06    Předmět: Odpovědět s citátem

jj díky moc už to funguje Smile na tuto funkci jsem si vůbec nevzpomněl...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Ladis



Založen: 18. 09. 2007
Příspěvky: 1536
Bydliště: u Prahy

PříspěvekZaslal: 16. září 2010, 08:36:30    Předmět: Odpovědět s citátem

Třeba proto, žes ji neznal Wink.
_________________
Award-winning game developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Obecné Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna