Last active
January 29, 2017 18:31
-
-
Save PoetaKodu/e223170ce7de4a1aa0d5964e0a390897 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
void CGame::Run() // Glowny kod gry. | |
{ | |
/* Pamiętamy żeby ustawić odpowiedni status aplikacji. */ | |
m_status = Status::Running; | |
/* Ciemnoszary kolor. */ | |
sf::Color bgColor(30, 30, 30); | |
/* By prawidłowo uaktualniać scenę potrzebujemy czasu klatki. */ | |
sf::Clock GameClock; | |
/* W DeltaTime przechowujemy czas klatki. */ | |
float DeltaTime = 1 / 60.f; | |
/* Wykonujemy pętlę glówną. | |
Przerywamy kiedy status zmienimy na CleaningUp | |
czyli po prostu gdy chcemy zamknąć aplikację. | |
*/ | |
while (m_status != Status::CleaningUp) | |
{ | |
/* Aby zmierzyć czas klatki potrzebujemy pobrać czas przy jej rozpoczęciu i przy końcu */ | |
float frameStartTime = GameClock.getElapsedTime().asSeconds(); | |
/* Pętla zdarzeń */ | |
sf::Event windowEvent; | |
while (m_window.pollEvent(windowEvent)) | |
{ | |
if (windowEvent.type == sf::Event::Closed) | |
m_status = Status::CleaningUp; // Reszta czyszczenia zostanie wykonana w destruktorze. | |
} | |
m_window.clear(bgColor); | |
/* Uaktualnij wszystkie elementy sceny | |
A następnie ją wyświetl. | |
*/ | |
m_currentLevel->Update(DeltaTime); | |
m_currentLevel->Draw(); | |
/* Całość przenosimy na ekran. */ | |
m_window.display(); | |
/* Aby zmierzyć czas klatki potrzebujemy pobrać czas przy jej rozpoczęciu i przy końcu | |
Dodatkowo liczymy tutaj ile czasu zajęło obsłużenie logiki i wyświetlenie klatki. | |
*/ | |
DeltaTime = GameClock.getElapsedTime().asSeconds() - frameStartTime; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment