From 738320e88ea287b7f53cda61c6ed42440d475716 Mon Sep 17 00:00:00 2001 From: Kayne Ruse Date: Thu, 16 May 2013 19:14:38 +1000 Subject: [PATCH] Switched TestSystems and InGame --- client/in_game.cpp | 88 +++---------------------------------- client/in_game.hpp | 17 ------- client/main_menu.cpp | 2 +- client/scene_manager.hpp | 2 + client/test_systems.cpp | 88 ++++++++++++++++++++++++++++++++++--- client/test_systems.hpp | 17 +++++++ docs/networking outline.txt | 16 +++++++ 7 files changed, 124 insertions(+), 106 deletions(-) create mode 100644 docs/networking outline.txt diff --git a/client/in_game.cpp b/client/in_game.cpp index 4a98072..7291077 100644 --- a/client/in_game.cpp +++ b/client/in_game.cpp @@ -14,17 +14,9 @@ InGame::InGame(ConfigUtility* cUtil, SurfaceManager* sMgr) { #endif configUtil = cUtil; surfaceMgr = sMgr; - - playerCounter = currentPlayer = 0; - - playerMgr.New(playerCounter++, surfaceMgr->Get("elliot")); - playerMgr.New(playerCounter++, surfaceMgr->Get("elliot")); - playerMgr.New(playerCounter++, surfaceMgr->Get("coa")); - playerMgr.New(playerCounter++, surfaceMgr->Get("coa")); } InGame::~InGame() { - playerMgr.DeleteAll(); #ifdef DEBUG cout << "leaving InGame" << endl; #endif @@ -35,7 +27,7 @@ InGame::~InGame() { //------------------------- void InGame::FrameStart() { - frameRate.Calculate(); + // } void InGame::FrameEnd() { @@ -43,12 +35,11 @@ void InGame::FrameEnd() { } void InGame::Update() { - delta.Calculate(); - playerMgr.UpdateAll(delta.GetDelta()); + // } void InGame::Render(SDL_Surface* const screen) { - playerMgr.DrawAllTo(screen); + // } //------------------------- @@ -70,80 +61,11 @@ void InGame::MouseButtonUp(SDL_MouseButtonEvent const& button) { void InGame::KeyDown(SDL_KeyboardEvent const& key) { switch(key.keysym.sym) { case SDLK_ESCAPE: - SetNextScene(SceneList::MAINMENU); - break; - - case SDLK_w: - playerMgr[currentPlayer]->WalkInDirection(Direction::NORTH); - break; - case SDLK_s: - playerMgr[currentPlayer]->WalkInDirection(Direction::SOUTH); - break; - case SDLK_a: - playerMgr[currentPlayer]->WalkInDirection(Direction::WEST); - break; - case SDLK_d: - playerMgr[currentPlayer]->WalkInDirection(Direction::EAST); - break; - - case SDLK_1: - SwitchToPlayer(0); - break; - case SDLK_2: - SwitchToPlayer(1); - break; - case SDLK_3: - SwitchToPlayer(2); - break; - case SDLK_4: - SwitchToPlayer(3); + QuitEvent(); break; } } void InGame::KeyUp(SDL_KeyboardEvent const& key) { - switch(key.keysym.sym) { - case SDLK_w: - playerMgr[currentPlayer]->WalkInDirection(Direction::SOUTH); - break; - case SDLK_s: - playerMgr[currentPlayer]->WalkInDirection(Direction::NORTH); - break; - case SDLK_a: - playerMgr[currentPlayer]->WalkInDirection(Direction::EAST); - break; - case SDLK_d: - playerMgr[currentPlayer]->WalkInDirection(Direction::WEST); - break; - } + // } - -//------------------------- -//Utilities -//------------------------- - -void InGame::NewPlayer(int index, std::string avatarName, int x, int y) { - Player* p = playerMgr.New(index, surfaceMgr->Get(avatarName)); - p->SetPosition(Vector2(x, y)); -} - -void InGame::SwitchToPlayer(int index) { - //dirty hacks for smooth movement - playerMgr[currentPlayer]->SetMotion(Vector2(0,0)); - currentPlayer = index; - - Uint8* key = SDL_GetKeyState(nullptr); - - if (key[SDLK_w]) { - playerMgr[currentPlayer]->WalkInDirection(Direction::NORTH); - } - if (key[SDLK_s]) { - playerMgr[currentPlayer]->WalkInDirection(Direction::SOUTH); - } - if (key[SDLK_a]) { - playerMgr[currentPlayer]->WalkInDirection(Direction::WEST); - } - if (key[SDLK_d]) { - playerMgr[currentPlayer]->WalkInDirection(Direction::EAST); - } -} \ No newline at end of file diff --git a/client/in_game.hpp b/client/in_game.hpp index e36f511..e9f508f 100644 --- a/client/in_game.hpp +++ b/client/in_game.hpp @@ -3,15 +3,9 @@ #include "base_scene.hpp" -#include "player_manager.hpp" - -#include "delta.hpp" -#include "frame_rate.hpp" #include "config_utility.hpp" #include "surface_manager.hpp" -#include - class InGame : public BaseScene { public: //Public access members @@ -32,20 +26,9 @@ 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); - void SwitchToPlayer(int index); - //members - PlayerManager playerMgr; - - Delta delta; - FrameRate frameRate; ConfigUtility* configUtil; SurfaceManager* surfaceMgr; - - int playerCounter; - int currentPlayer; }; #endif diff --git a/client/main_menu.cpp b/client/main_menu.cpp index e682165..0e1c2b2 100644 --- a/client/main_menu.cpp +++ b/client/main_menu.cpp @@ -70,7 +70,7 @@ void MainMenu::MouseButtonDown(SDL_MouseButtonEvent const& button) { void MainMenu::MouseButtonUp(SDL_MouseButtonEvent const& button) { if (buttonMap["start"]->MouseButtonUp(button) == Button::State::HOVER) { //TODO - SetNextScene(SceneList::INGAME); + SetNextScene(SceneList::TESTSYSTEMS); cout << "start" << endl; } if (buttonMap["options"]->MouseButtonUp(button) == Button::State::HOVER) { diff --git a/client/scene_manager.hpp b/client/scene_manager.hpp index 4488d4d..adc2508 100644 --- a/client/scene_manager.hpp +++ b/client/scene_manager.hpp @@ -6,6 +6,7 @@ #include "config_utility.hpp" #include "surface_manager.hpp" +#include "network.hpp" #include "SDL/SDL.h" @@ -28,6 +29,7 @@ private: ConfigUtility configUtil; SurfaceManager surfaceMgr; + TCPSocket socket; }; #endif diff --git a/client/test_systems.cpp b/client/test_systems.cpp index 1e60ea3..d610c5c 100644 --- a/client/test_systems.cpp +++ b/client/test_systems.cpp @@ -14,9 +14,17 @@ TestSystems::TestSystems(ConfigUtility* cUtil, SurfaceManager* sMgr) { #endif configUtil = cUtil; surfaceMgr = sMgr; + + playerCounter = currentPlayer = 0; + + playerMgr.New(playerCounter++, surfaceMgr->Get("elliot")); + playerMgr.New(playerCounter++, surfaceMgr->Get("elliot")); + playerMgr.New(playerCounter++, surfaceMgr->Get("coa")); + playerMgr.New(playerCounter++, surfaceMgr->Get("coa")); } TestSystems::~TestSystems() { + playerMgr.DeleteAll(); #ifdef DEBUG cout << "leaving TestSystems" << endl; #endif @@ -27,7 +35,7 @@ TestSystems::~TestSystems() { //------------------------- void TestSystems::FrameStart() { - // + frameRate.Calculate(); } void TestSystems::FrameEnd() { @@ -35,11 +43,12 @@ void TestSystems::FrameEnd() { } void TestSystems::Update() { - // + delta.Calculate(); + playerMgr.UpdateAll(delta.GetDelta()); } void TestSystems::Render(SDL_Surface* const screen) { - // + playerMgr.DrawAllTo(screen); } //------------------------- @@ -61,11 +70,80 @@ void TestSystems::MouseButtonUp(SDL_MouseButtonEvent const& button) { void TestSystems::KeyDown(SDL_KeyboardEvent const& key) { switch(key.keysym.sym) { case SDLK_ESCAPE: - QuitEvent(); + SetNextScene(SceneList::MAINMENU); + break; + + case SDLK_w: + playerMgr[currentPlayer]->WalkInDirection(Direction::NORTH); + break; + case SDLK_s: + playerMgr[currentPlayer]->WalkInDirection(Direction::SOUTH); + break; + case SDLK_a: + playerMgr[currentPlayer]->WalkInDirection(Direction::WEST); + break; + case SDLK_d: + playerMgr[currentPlayer]->WalkInDirection(Direction::EAST); + break; + + case SDLK_1: + SwitchToPlayer(0); + break; + case SDLK_2: + SwitchToPlayer(1); + break; + case SDLK_3: + SwitchToPlayer(2); + break; + case SDLK_4: + SwitchToPlayer(3); break; } } void TestSystems::KeyUp(SDL_KeyboardEvent const& key) { - // + switch(key.keysym.sym) { + case SDLK_w: + playerMgr[currentPlayer]->WalkInDirection(Direction::SOUTH); + break; + case SDLK_s: + playerMgr[currentPlayer]->WalkInDirection(Direction::NORTH); + break; + case SDLK_a: + playerMgr[currentPlayer]->WalkInDirection(Direction::EAST); + break; + case SDLK_d: + playerMgr[currentPlayer]->WalkInDirection(Direction::WEST); + break; + } +} + +//------------------------- +//Utilities +//------------------------- + +void TestSystems::NewPlayer(int index, std::string avatarName, int x, int y) { + Player* p = playerMgr.New(index, surfaceMgr->Get(avatarName)); + p->SetPosition(Vector2(x, y)); +} + +void TestSystems::SwitchToPlayer(int index) { + //dirty hacks for smooth movement + playerMgr[currentPlayer]->SetMotion(Vector2(0,0)); + currentPlayer = index; + + Uint8* key = SDL_GetKeyState(nullptr); + + if (key[SDLK_w]) { + playerMgr[currentPlayer]->WalkInDirection(Direction::NORTH); + } + if (key[SDLK_s]) { + playerMgr[currentPlayer]->WalkInDirection(Direction::SOUTH); + } + if (key[SDLK_a]) { + playerMgr[currentPlayer]->WalkInDirection(Direction::WEST); + } + if (key[SDLK_d]) { + playerMgr[currentPlayer]->WalkInDirection(Direction::EAST); + } } diff --git a/client/test_systems.hpp b/client/test_systems.hpp index 94d7e82..518843d 100644 --- a/client/test_systems.hpp +++ b/client/test_systems.hpp @@ -3,9 +3,15 @@ #include "base_scene.hpp" +#include "player_manager.hpp" + +#include "delta.hpp" +#include "frame_rate.hpp" #include "config_utility.hpp" #include "surface_manager.hpp" +#include + class TestSystems : public BaseScene { public: //Public access members @@ -26,9 +32,20 @@ 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); + void SwitchToPlayer(int index); + //members + PlayerManager playerMgr; + + Delta delta; + FrameRate frameRate; ConfigUtility* configUtil; SurfaceManager* surfaceMgr; + + int playerCounter; + int currentPlayer; }; #endif diff --git a/docs/networking outline.txt b/docs/networking outline.txt new file mode 100644 index 0000000..828ce31 --- /dev/null +++ b/docs/networking outline.txt @@ -0,0 +1,16 @@ +Client: + SceneManager: + TCPSocket + end +end + +Server: + TCPServerSocket + SocketList --list of all client sockets if one is closed, remove it. +end + +When the player enters the lobby, they can choose what server to connect to. When they connect to the server, they'll enter a sort of character creation screen. Once that is done, they will enter the game world proper. + +This is controlled through the config files for now. + +using ';' delimited commands, how can I get it to work? \ No newline at end of file