[SDL, C++] Optymalizacja
Ostatnio zmodyfikowano 2012-12-15 14:14
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ć? 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 :) |
|
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) :) |
|
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 |
|
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 :) |
|
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ć. |
|
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 |
|
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. |
|
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/INSTALLBtw 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 |
|
« 1 » 2 |