diff --git a/client/in_world.cpp b/client/in_world.cpp index 27215db..8c8f156 100644 --- a/client/in_world.cpp +++ b/client/in_world.cpp @@ -34,6 +34,7 @@ InWorld::InWorld() { cout << "entering InWorld" << endl; #endif cout << "Client Index: " << infoMgr->GetClientIndex() << endl; + font.SetSurface(surfaceMgr->Get("font")); pc.GetSprite()->SetSurface(surfaceMgr->Get("elliot"), 32, 48); } @@ -61,7 +62,13 @@ void InWorld::FrameEnd() { } void InWorld::Render(SDL_Surface* const screen) { + ClockFrameRate(); + pc.DrawTo(screen); + + //since we're using this twice, make a tmp var + string fps = itos(GetFrameRate()); + font.DrawStringTo(fps, screen, screen->w - fps.size() * font.GetCharW(), 0); } //------------------------- @@ -198,4 +205,4 @@ void InWorld::HandleDisconnection(::Disconnect& disconnect) { Disconnect(); SetNextScene(SceneList::MAINMENU); cout << "You have been disconnected" << endl; -} \ No newline at end of file +} diff --git a/client/in_world.hpp b/client/in_world.hpp index bc9d745..a4ebbd8 100644 --- a/client/in_world.hpp +++ b/client/in_world.hpp @@ -35,6 +35,7 @@ #include "udp_network_utility.hpp" #include "button.hpp" #include "raster_font.hpp" +#include "frame_rate.hpp" //debugging #include "player_character.hpp" @@ -73,7 +74,8 @@ protected: InformationManager* infoMgr = ServiceLocator::Get(); //members + RasterFont font; PlayerCharacter pc; }; -#endif \ No newline at end of file +#endif diff --git a/libs/Codebase/frame_rate.cpp b/libs/Codebase/frame_rate.cpp index e0be7a7..0b855d3 100644 --- a/libs/Codebase/frame_rate.cpp +++ b/libs/Codebase/frame_rate.cpp @@ -21,6 +21,24 @@ */ #include "frame_rate.hpp" -int FrameRate::frameCount = 0; -int FrameRate::lastFrameRate = 0; -FrameRate::Clock::time_point FrameRate::tick = FrameRate::Clock::now(); +#include + +typedef std::chrono::high_resolution_clock Clock; + +static int frameCount = 0; +static int lastFrameRate = 0; +static Clock::time_point tick = Clock::now(); + +int ClockFrameRate() { + frameCount++; + if (Clock::now() - tick >= std::chrono::duration(1)) { + lastFrameRate = frameCount; + frameCount = 0; + tick = Clock::now(); + } + return lastFrameRate; +} + +int GetFrameRate() { + return lastFrameRate; +} diff --git a/libs/Codebase/frame_rate.hpp b/libs/Codebase/frame_rate.hpp index 078139a..8f0a920 100644 --- a/libs/Codebase/frame_rate.hpp +++ b/libs/Codebase/frame_rate.hpp @@ -22,27 +22,7 @@ #ifndef FRAMERATE_HPP_ #define FRAMERATE_HPP_ -#include - -class FrameRate { -public: - typedef std::chrono::high_resolution_clock Clock; - - FrameRate() = delete; - static int Calculate() { - frameCount++; - if (Clock::now() - tick >= std::chrono::duration(1)) { - lastFrameRate = frameCount; - frameCount = 0; - tick = Clock::now(); - } - return lastFrameRate; - } - static int GetFrameRate() { return lastFrameRate; } -private: - static int frameCount; - static int lastFrameRate; - static Clock::time_point tick; -}; +int ClockFrameRate(); +int GetFrameRate(); #endif