diff --git a/client/frame_rate.hpp b/client/frame_rate.hpp new file mode 100644 index 0000000..0630595 --- /dev/null +++ b/client/frame_rate.hpp @@ -0,0 +1,29 @@ +#ifndef FRAMERATE_HPP_ +#define FRAMERATE_HPP_ + +#include + +class FrameRate { +public: + FrameRate() { + frameCount = lastFrameRate = tick = 0; + } + int Calculate() { + frameCount++; + if (clock() - tick >= CLOCKS_PER_SEC) { + lastFrameRate = frameCount; + frameCount = 0; + tick = clock(); + } + return lastFrameRate; + } + int GetFrameRate() { + return lastFrameRate; + } +private: + int frameCount; + int lastFrameRate; + int tick; +}; + +#endif diff --git a/client/in_game.cpp b/client/in_game.cpp index 512c989..d1caff7 100644 --- a/client/in_game.cpp +++ b/client/in_game.cpp @@ -31,7 +31,7 @@ InGame::~InGame() { //------------------------- void InGame::FrameStart() { - // + frameRate.Calculate(); } void InGame::FrameEnd() { @@ -100,3 +100,11 @@ void InGame::KeyUp(SDL_KeyboardEvent const& key) { break; } } + +//------------------------- +//Utilities +//------------------------- + +void InGame::NewPlayer(int index, std::string avatarName, int x, int y) { + // +} diff --git a/client/in_game.hpp b/client/in_game.hpp index b82f2f6..5ef9a95 100644 --- a/client/in_game.hpp +++ b/client/in_game.hpp @@ -4,9 +4,12 @@ #include "base_scene.hpp" #include "delta.hpp" -#include "player.hpp" +#include "frame_rate.hpp" +#include "player_manager.hpp" #include "surface_manager.hpp" +#include + class InGame : public BaseScene { public: //Public access members @@ -27,9 +30,15 @@ protected: virtual void KeyDown (SDL_KeyboardEvent const&); virtual void KeyUp (SDL_KeyboardEvent const&); + //utilities + void NewPlayer(int index, std::string avatarName, int x, int y); + //members Delta delta; + FrameRate frameRate; SurfaceManager surfaceMgr; + PlayerManager playerMgr; + Player* player; }; diff --git a/client/makefile b/client/makefile index d6ea347..100cfeb 100644 --- a/client/makefile +++ b/client/makefile @@ -11,7 +11,7 @@ OUTDIR=out OUT=$(addprefix $(OUTDIR)/,a) #source -SRC=test_systems.cpp in_game.cpp +SRC=test_systems.cpp in_game.cpp player_manager.cpp #targets all: $(OBJ) $(OUT) diff --git a/client/player_manager.cpp b/client/player_manager.cpp new file mode 100644 index 0000000..616c934 --- /dev/null +++ b/client/player_manager.cpp @@ -0,0 +1,2 @@ +#include "player_manager.hpp" + diff --git a/client/player_manager.hpp b/client/player_manager.hpp new file mode 100644 index 0000000..59db6f9 --- /dev/null +++ b/client/player_manager.hpp @@ -0,0 +1,11 @@ +#ifndef PLAYERMANAGER_HPP_ +#define PLAYERMANAGER_HPP_ + +#include "player.hpp" + +class PlayerManager { +public: +private: +}; + +#endif diff --git a/docs/pseudocode.txt b/docs/pseudocode.txt index 9bfc308..4c66e79 100644 --- a/docs/pseudocode.txt +++ b/docs/pseudocode.txt @@ -28,6 +28,7 @@ Player: PlayerManager: + NewPlayer(index, avatar, x, y) Update(delta) //all player objects Synchronize(dataArray) //possible @@ -48,3 +49,6 @@ Receive: player update: PlayerManager.Update(message) end + +------------------------- +