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