Switched TestSystems and InGame

This commit is contained in:
Kayne Ruse
2013-05-16 19:14:38 +10:00
parent f04c7fa161
commit 738320e88e
7 changed files with 124 additions and 106 deletions
+5 -83
View File
@@ -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);
}
}
-17
View File
@@ -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 <string>
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
+1 -1
View File
@@ -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) {
+2
View File
@@ -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
+83 -5
View File
@@ -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);
}
}
+17
View File
@@ -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 <string>
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
+16
View File
@@ -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?