Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[SDL, C++] Optymalizacja

Ostatnio zmodyfikowano 2012-12-15 14:14
Autor Wiadomość
Galfados
Temat założony przez niniejszego użytkownika
[SDL, C++] Optymalizacja
» 2012-12-12 23:14:16
Witajcie mam problem z zoptymalizowaniem kodu odpowiedzialnego za wyświetlanie mapy.
Sprawdzałem cały kodzik i on jest przyczyną niskiego FPS'a w grze. Z wyświetlaniem mam ~13, a bez ~80.
Więc jak mogę to zrobić?

C/C++
void showmap()
{
    SDL_Rect bx;
    int odX, doX;
    int odY, doY;
    odX = camera.x - 32;
    doX = camera.x + 640;
    odY = camera.y - 32;
    doY = camera.y + 480;
   
    for( size_t i = 0; i < map.size(); i++ )
    {
        if( map[ i ].box.x >= odX && map[ i ].box.x <= doX &&
        map[ i ].box.y >= odY && map[ i ].box.y <= doY )
        {
            bx.x = map[ i ].box.x - camera.x;
            bx.y = map[ i ].box.y - camera.y;
            bx.w = map[ i ].box.w;
            bx.h = map[ i ].box.h;
            SDL_BlitSurface( tileset, & map[ i ].tbox, screen, & bx );
        }
    }
}

Info: wektor struktur "map", zawiera informacje o tym gdzie na ekranie ma znaleźć się obrazek.
funkcja ta wykonuje się w głównej pętli gry :)
P-70862
DejaVu
» 2012-12-13 00:36:42
Kwestia wersji SDL, jednak z dużym prawdopodobieństwem używasz starej wersji, która nie posiada wsparcia sprzętowego karty graficznej... więc muli :P Nie wiem czy ktokolwiek używa jeszcze tej biblioteki do pisania gier (w zasadzie to do pisania czegokolwiek) :)
P-70865
m4tx
» 2012-12-13 07:10:53
Nie wiem czy ktokolwiek używa jeszcze tej biblioteki do pisania gier (w zasadzie to do pisania czegokolwiek) :)
Na Linuksie ją akurat dość często widzę, z tym, że zazwyczaj w parze z OpenGL-em :P
P-70866
Galfados
Temat założony przez niniejszego użytkownika
» 2012-12-13 14:03:54
@DeJaVu

Stare ale jare :D
Jest prosta w obsłudze itp. Tylko problem z szybkością działania :)
P-70871
akwes
» 2012-12-13 14:58:02

Na Linuksie ją akurat dość często widzę, z tym, że zazwyczaj w parze z OpenGL-em :P
Czyli pewnie nie używają SDLa do czegoś więcej niż stworzenie okna ;> Albo wersję 2.0

@autor
Która wersja SDLa? Bo 2.0 akurat powinno śmigać.
P-70874
Galfados
Temat założony przez niniejszego użytkownika
» 2012-12-13 15:05:13
@akwes
Bodajże 1.6 ale nie jestem pewien. Na pewno to nie jest 2.0
P-70876
akwes
» 2012-12-13 15:20:18
Wszystko poniżej wersji 2.0 będzie zamulać ponieważ dopiero w wersji 2.0 SDL w pełni (lub w ogóle) obsługuje wsparcie sprzętowe.
P-70880
Mrovqa
» 2012-12-13 16:24:31
Nie wiem czy ktokolwiek używa jeszcze tej biblioteki do pisania gier (w zasadzie to do pisania czegokolwiek) :)
http://www.hedgewars.org/
Jeden plik z oficjalnego repozytorium: http://code.google.com/p/hedgewars/source/browse/INSTALL
Btw to kolega chwali sobie tę bibliotekę (niestety, nie ma konta tu na forum), choć jakoś dużo w niej nie pisze :P
Ja w szkole spostrzegłem się, iż jest jeden taki co kodzi grę (inny kolega niż ten wyżej) - niestety w Allegro 4 i pomijając to, że nie używa w ogóle klas to nie chce się nawet dać przekonać do Allegro 5... heh :P
P-70888
« 1 » 2
  Strona 1 z 2 Następna strona