tu jest główna pętla:
int main()
{
allegro_inicjalizacja();
bitmapy();
generator();
for(;;)
{
al_get_keyboard_state(&Key);
al_get_mouse_state( & Mouse );
czas_grafika();
czas_obliczenia();
if(al_get_time()>czas_2+1) // <--------tym if'em obliczam fps głównej pętli
{
czas_2=al_get_time();
cout<<fps_p<<" "<<fps_g<<" "<<endl;
fps_p=0;
fps_g=0;
}
fps_p++;
if(obliczenia)
{
mapa();
mysz_krawedzie(okno_x, okno_y, Mouse.x ,Mouse.y);
}
if(grafika)
{
pokaz();
panel(okno_x, okno_y, Mouse.x ,Mouse.y, Mouse.buttons);
}
if(grafika)
{
al_flip_display();
al_clear_to_color(al_map_rgb(0,0,0));
grafika=false;
fps_g++;
}
if(Mouse.buttons==0)klik=false;
if(al_key_down(&Key,ALLEGRO_KEY_ESCAPE))break;
niszczenie();
return 0;
}
if(grafika) mam 2x ponieważ jedno z nich będzie przeniesione do switch().
Fps podawałem w tysiącach i powinna być dobrze liczona.
zmienna fps_p liczy ilość pętli a
if(al_get_time()>czas_2+1)
{
czas_2=al_get_time();
cout<<fps_p<<" "<<fps_g<<" "<<endl;
fps_p=0;
fps_g=0;
}
po 1 sekundzie wyświetla mi ta zmienną i ją zeruje itd.