diego997 Temat założony przez niniejszego użytkownika |
[SFML] Jak poprawnie napisać platformówkę » 2012-03-30 12:55:41 Chcę zacząć od tego iż z nudów napisałem sobie nie wiem jak to nazwać załóżmy gierkę która wygląda następująco. Odpalamy exe'ka i oczom ukazuje się okno w dwoma przyciskami, jeden przycisk służy do tworzenia klocków(sf::shape), drugi do stworzenia również klocka ale symbolizującego gracza. Tworzone klocki po których ma poruszać się gracz można modyfikować tzn zmieniać kolor, wielkość. I teraz tak wszystko by było fajnie gdyby nie fakt, że za każdym razem kiedy stworzę nowego klocka gra spowalnia. Dzieje się tak zapewne dlatego, że podczas działania gry na okrągło sprawdzane są kolizje oraz odświeżane obiekty(sf::Draw), a są to funkcje z których raczej nie można zrezygnować. Wiec jak to się dzieje, że np Crysis 2 chodzi płynnie, a gra składająca się z 7 obiektów wykorzystuje 90% procesora i nie daje rady? Jak prawidłowo to napisać ? |
|
hincu |
» 2012-03-30 13:09:11 zle napisany kod, zoptymalizuj go troche zreszta sfml 1.6 korzysta z CPU 2.0 rysuje przez GPU |
|
ison |
» 2012-03-30 13:30:39 @up skąd masz takie informacje? 1.6 jest jak najbardziej hardware-accelerated, jednak nie jest zbyt optymalny, całe renderowanie odbywa się przez glBegin/glEnd ale wszystko leci na oglu jak to się dzieje, że np Crysis 2 chodzi płynnie, a gra składająca się z 7 obiektów wykorzystuje 90% procesora i nie daje rady? Jak prawidłowo to napisać ?
|
Wykorzystywanie przez aplikację całego CPU nie jest równoznaczne z tym, że aplikacja 'nie daje rady'. Jeśli nie chcesz tak katować sprzętu to po prostu włącz vsync. To, że fps spada z każdym dodanym klockiem jest normalne, ile masz fps przy tych 7 obiektach? Jeśli powyżej 400 to nie ma się o co martwić. |
|
m4tx |
» 2012-03-30 14:28:30 Wykorzystuje 90% procesora z prostego powodu - jest tam nieskończona pętla, która cały czas, bez przerw się wykonuje. Gdybyś zrobił VSync czy ograniczenie ilości FPS, to po każdym wykonaniu takiej pętli gra czekałaby jakiś czas i dopiero rysowała następną klatkę. Jednocześnie spadłoby zużycie procesora :)
I tak btw, @hincu - co ty za głupoty opowiadasz... SFML 1.6 rysuje wszystko przez OpenGL-a, a on działa na GPU przecież... :) |
|
hincu |
» 2012-03-30 15:16:18 rysowac tak ale obliczenia juz robi cpu nie gpu w 2.0 to sie zmienilo |
|
diego997 Temat założony przez niniejszego użytkownika |
» 2012-03-30 17:51:51 A mogę wam podać linka do tej gierki i byście zobaczyli dokładnie o co mi chodzi? Tylko powiedzcie co mam spakować jeszcze razem z exekiem ? |
|
ison |
» 2012-03-30 18:27:32 rysowac tak ale obliczenia juz robi cpu nie gpu w 2.0 to sie zmienilo
|
Chodzi Ci o to, że zamiast glBegin/glEnd jest coś w stylu VBO czy jak? Masz jakiś link do tych informacji? @diego ile masz fps przy tych 7 obiektach? |
|
diego997 Temat założony przez niniejszego użytkownika |
» 2012-03-30 18:38:01 Jak sprawdzam metodą GetFrameLimit pokazuje mi w konsoli 0,0034566 nie wiem jak inaczej sprawdzić |
|
« 1 » 2 |