Autor Wątek: Allegro 5 niski fps  (Przeczytany 4661 razy)

Offline Amun

  • Użytkownik

  • +1
# Sierpień 21, 2013, 14:24:52
i fps wynosi teraz około 440k

Musisz mieć ładną maszynę...

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline JasonVoorhees

  • Użytkownik
    • The Immortal Life of the Son of Jay

# Sierpień 21, 2013, 14:45:01
Albo źle liczy FPS :D

Offline Estivo

  • Użytkownik
    • Blog

# Sierpień 21, 2013, 14:47:44
Z if'ami miałem 300k .Zrobiłem tak jak mi doradzono i pozbyłem się if'ów i wygląda to chwilowo teraz tak:
i fps wynosi teraz około 440k
Nie to że się uparłem na if'y, po prostu miałem wtedy taki pomysł.

coś czuje, że ty fps masz źle liczony. Podaj nam delte czasu renderowania kolejnych klatek(chociaż jednej, albo średnią), bo z fpsami to my się nie dogadamy.

Offline Xirdus

  • Redaktor

# Sierpień 21, 2013, 15:03:49
Wydaje mi się, że to k oznacza klatki, nie tysiące ;)

Offline Nekronomik

  • Użytkownik

# Sierpień 21, 2013, 15:05:13
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.
« Ostatnia zmiana: Sierpień 22, 2013, 19:47:47 wysłana przez Nekronomik »