get player out of main. player is now a singelton?(not sure of singleton is good inplemented). Added player singleton in worldstate
This commit is contained in:
@@ -18,7 +18,7 @@ bool keys[255];
|
|||||||
//vector<Model*> models;
|
//vector<Model*> models;
|
||||||
//int currentModel = 0;
|
//int currentModel = 0;
|
||||||
|
|
||||||
Player *player;
|
|
||||||
StateHandler *statehandler;
|
StateHandler *statehandler;
|
||||||
|
|
||||||
void display()
|
void display()
|
||||||
@@ -49,24 +49,15 @@ void display()
|
|||||||
|
|
||||||
statehandler->GetCurrentState()->Display();
|
statehandler->GetCurrentState()->Display();
|
||||||
|
|
||||||
player->Display();
|
//player->Display();
|
||||||
|
|
||||||
glutSolidCube(10.0);
|
//glutSolidCube(10.0);
|
||||||
|
|
||||||
glDisable(GL_TEXTURE_2D);
|
glDisable(GL_TEXTURE_2D);
|
||||||
glutSwapBuffers();
|
glutSwapBuffers();
|
||||||
}
|
}
|
||||||
|
|
||||||
void move(float angle, float fac, bool heigth)
|
|
||||||
{
|
|
||||||
if (heigth)
|
|
||||||
player->eyes.posY += angle*fac;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
player->eyes.posX += (float)cos((player->eyes.rotY + angle) / 180 * M_PI) * fac;
|
|
||||||
player->eyes.posZ += (float)sin((player->eyes.rotY + angle) / 180 * M_PI) * fac;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void idle()
|
void idle()
|
||||||
{
|
{
|
||||||
@@ -74,18 +65,9 @@ void idle()
|
|||||||
float deltaTime = frameTime - lastFrameTime;
|
float deltaTime = frameTime - lastFrameTime;
|
||||||
lastFrameTime = frameTime;
|
lastFrameTime = frameTime;
|
||||||
|
|
||||||
statehandler->GetCurrentState()->Keyboard(keys);
|
statehandler->GetCurrentState()->Keyboard(keys,deltaTime);
|
||||||
statehandler->GetCurrentState()->Idle(deltaTime);
|
statehandler->GetCurrentState()->Idle(deltaTime);
|
||||||
|
|
||||||
float speed = 10;
|
|
||||||
|
|
||||||
if (keys['a']) move(0, deltaTime*speed, false);
|
|
||||||
if (keys['d']) move(180, deltaTime*speed, false);
|
|
||||||
if (keys['w']) move(90, deltaTime*speed, false);
|
|
||||||
if (keys['s']) move(270, deltaTime*speed, false);
|
|
||||||
if (keys['q']) move(1, deltaTime*speed, true);
|
|
||||||
if (keys['e']) move(-1, deltaTime*speed, true);
|
|
||||||
|
|
||||||
glutPostRedisplay();
|
glutPostRedisplay();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -197,8 +179,7 @@ void configureOpenGL()
|
|||||||
}
|
}
|
||||||
|
|
||||||
void loadModels()
|
void loadModels()
|
||||||
{
|
{
|
||||||
player = new Player();
|
|
||||||
statehandler = new StateHandler();
|
statehandler = new StateHandler();
|
||||||
|
|
||||||
statehandler->Navigate(statehandler->WORLD_STATE);
|
statehandler->Navigate(statehandler->WORLD_STATE);
|
||||||
|
|||||||
@@ -264,7 +264,6 @@ void Model::loadMaterialFile(std::string fileName, std::string dirName)
|
|||||||
|
|
||||||
Model::MaterialInfo::MaterialInfo()
|
Model::MaterialInfo::MaterialInfo()
|
||||||
{
|
{
|
||||||
Texture *texture;
|
|
||||||
hasTexture = false;
|
hasTexture = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+52
-16
@@ -1,41 +1,77 @@
|
|||||||
#include "Player.h"
|
#include "Player.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Player::Player()
|
Player::Player()
|
||||||
{
|
{
|
||||||
right = new Weapon("models/weapons/ZwaardMetTextures/TextureZwaard.obj");
|
|
||||||
left = new Weapon("models/weapons/ZwaardMetTextures/TextureZwaard.obj");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Player::~Player()
|
Player::~Player()
|
||||||
{
|
{
|
||||||
delete right;
|
if(right != nullptr)
|
||||||
delete left;
|
delete right;
|
||||||
|
if(left != nullptr)
|
||||||
|
delete left;
|
||||||
|
/*if (player != nullptr)
|
||||||
|
delete player;*/
|
||||||
}
|
}
|
||||||
|
|
||||||
void Player::Display(void)
|
void Player::Display(void)
|
||||||
{
|
{
|
||||||
if (right != nullptr)
|
if (right != nullptr)
|
||||||
{
|
{
|
||||||
glPushMatrix();
|
|
||||||
glTranslatef(2.5f,0,-4.5f);
|
|
||||||
right->draw_weapon();
|
right->draw_weapon();
|
||||||
glPopMatrix();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (left != nullptr)
|
if (left != nullptr)
|
||||||
{
|
{
|
||||||
glPushMatrix();
|
left->draw_weapon();
|
||||||
glTranslatef(-0.5f,0,-4.5f);
|
|
||||||
left->draw_weapon();
|
|
||||||
glPopMatrix();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*glRotatef(player->eyes.rotX, 1, 0, 0);
|
||||||
|
glRotatef(player->eyes.rotY, 0, 1, 0);
|
||||||
|
glTranslatef(player->eyes.posX, player->eyes.posY, player->eyes.posZ);*/
|
||||||
glRotatef(eyes.rotX, 1, 0, 0);
|
glRotatef(eyes.rotX, 1, 0, 0);
|
||||||
glRotatef(eyes.rotY, 0, 1, 0);
|
glRotatef(eyes.rotY, 0, 1, 0);
|
||||||
glTranslatef(eyes.posX, eyes.posY, eyes.posZ);
|
glTranslatef(eyes.posX, eyes.posY, eyes.posZ);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Player & Player::GetInstance(void)
|
||||||
|
{
|
||||||
|
static Player instance;
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Player * Player::GetInstance(void)
|
||||||
|
//{
|
||||||
|
// if (player == nullptr)
|
||||||
|
// player = new Player();
|
||||||
|
// return player;
|
||||||
|
//}
|
||||||
|
|
||||||
|
void Player::PlayerMoveEyes(float angle, float fac, bool heigth)
|
||||||
|
{
|
||||||
|
//player movement
|
||||||
|
|
||||||
|
/*if (heigth)
|
||||||
|
player->eyes.posY += angle*fac;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
player->eyes.posX += (float)cos((player->eyes.rotY + angle) / 180 * M_PI) * fac;
|
||||||
|
player->eyes.posZ += (float)sin((player->eyes.rotY + angle) / 180 * M_PI) * fac;
|
||||||
|
}*/
|
||||||
|
if (heigth)
|
||||||
|
eyes.posY += angle*fac;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
eyes.posX += (float)cos((eyes.rotY + angle) / 180 * M_PI) * fac;
|
||||||
|
eyes.posZ += (float)sin((eyes.rotY + angle) / 180 * M_PI) * fac;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Player::PlayerRotateEyes(int dx, int dy)
|
||||||
|
{
|
||||||
|
eyes.rotY += dx / 10.0f;
|
||||||
|
eyes.rotX += dy / 10.0f;
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,6 @@
|
|||||||
class Player
|
class Player
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Player();
|
|
||||||
~Player();
|
~Player();
|
||||||
|
|
||||||
struct Eyes
|
struct Eyes
|
||||||
@@ -18,11 +17,22 @@ public:
|
|||||||
} eyes;
|
} eyes;
|
||||||
|
|
||||||
void Display(void);
|
void Display(void);
|
||||||
|
//static Player* GetInstance(void);
|
||||||
|
static Player& GetInstance(void);
|
||||||
|
|
||||||
|
|
||||||
|
void PlayerMoveEyes(const float angle, const float fac, const bool heigth);
|
||||||
|
void PlayerRotateEyes(const int dx, const int dy);
|
||||||
private:
|
private:
|
||||||
int level;
|
int level;
|
||||||
int xp;
|
int xp;
|
||||||
Weapon* right = nullptr;
|
Weapon* right = nullptr;
|
||||||
Weapon* left = nullptr;
|
Weapon* left = nullptr;
|
||||||
vector<Weapon> weapons;
|
vector<Weapon> weapons;
|
||||||
|
Player();
|
||||||
|
Player(Player const&);
|
||||||
|
void operator=(Player const&);
|
||||||
|
|
||||||
|
//static Player* player;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ void State::Display()
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void State::Keyboard(bool keys[255])
|
void State::Keyboard(bool keys[255],float deltaTime)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ public:
|
|||||||
virtual void Idle(float delta);
|
virtual void Idle(float delta);
|
||||||
virtual void Display();
|
virtual void Display();
|
||||||
|
|
||||||
virtual void Keyboard(bool keys[255]);
|
virtual void Keyboard(bool keys[255],float deltaTime);
|
||||||
virtual void MouseMove(int x, int y, int dx, int dy);
|
virtual void MouseMove(int x, int y, int dx, int dy);
|
||||||
virtual void MouseClick(int button, int type, int x, int y);
|
virtual void MouseClick(int button, int type, int x, int y);
|
||||||
};
|
};
|
||||||
|
|||||||
+2
-1
@@ -8,7 +8,8 @@ StateHandler::StateHandler()
|
|||||||
StateList.push_back(new SettingsState()); //SETTINGS_STATE
|
StateList.push_back(new SettingsState()); //SETTINGS_STATE
|
||||||
StateList.push_back(new WorldState()); //WORLD_STATE
|
StateList.push_back(new WorldState()); //WORLD_STATE
|
||||||
|
|
||||||
CurrentState = INIT_STATE;
|
//CurrentState = INIT_STATE;
|
||||||
|
CurrentState = WORLD_STATE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,49 @@
|
|||||||
#include "WorldState.h"
|
#include "WorldState.h"
|
||||||
|
#include "Player.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
WorldState::WorldState()
|
WorldState::WorldState()
|
||||||
{
|
{
|
||||||
|
/*player = Player::GetInstance();*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
WorldState::~WorldState()
|
WorldState::~WorldState()
|
||||||
{
|
{
|
||||||
|
//if (player != nullptr)
|
||||||
|
//delete player;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void WorldState::Keyboard(bool keys[255],float deltaTime)
|
||||||
|
{
|
||||||
|
float speed = 10;
|
||||||
|
std::cout << "Keyboard doet het in de world state" << std::endl;
|
||||||
|
/*if (keys['a']) player->PlayerMoveEyes(0, deltaTime*speed, false);
|
||||||
|
if (keys['d']) player->PlayerMoveEyes(180, deltaTime*speed, false);
|
||||||
|
if (keys['w']) player->PlayerMoveEyes(90, deltaTime*speed, false);
|
||||||
|
if (keys['s']) player->PlayerMoveEyes(270, deltaTime*speed, false);
|
||||||
|
if (keys['q']) player->PlayerMoveEyes(1, deltaTime*speed, true);
|
||||||
|
if (keys['e']) player->PlayerMoveEyes(-1, deltaTime*speed, true); */
|
||||||
|
|
||||||
|
if (keys['a']) Player::GetInstance().PlayerMoveEyes(0, deltaTime*speed, false);
|
||||||
|
if (keys['d']) Player::GetInstance().PlayerMoveEyes(180, deltaTime*speed, false);
|
||||||
|
if (keys['w']) Player::GetInstance().PlayerMoveEyes(90, deltaTime*speed, false);
|
||||||
|
if (keys['s']) Player::GetInstance().PlayerMoveEyes(270, deltaTime*speed, false);
|
||||||
|
if (keys['q']) Player::GetInstance().PlayerMoveEyes(1, deltaTime*speed, true);
|
||||||
|
if (keys['e']) Player::GetInstance().PlayerMoveEyes(-1, deltaTime*speed, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WorldState::MouseMove(int x, int y, int dx, int dy)
|
||||||
|
{
|
||||||
|
//player->PlayerRotateEyes(dx, dy);
|
||||||
|
Player::GetInstance().PlayerRotateEyes(dx, dy);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WorldState::Display()
|
||||||
|
{
|
||||||
|
Player::GetInstance().Display();
|
||||||
|
|
||||||
|
glutSolidCube(10.0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,18 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
#include "Header.h"
|
#include "Header.h"
|
||||||
#include "State.h"
|
#include "State.h"
|
||||||
|
#include "Player.h"
|
||||||
|
|
||||||
class WorldState : public State
|
class WorldState : public State
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
WorldState();
|
WorldState();
|
||||||
~WorldState();
|
~WorldState();
|
||||||
|
|
||||||
|
void Keyboard(bool keys[255],float deltaTime);
|
||||||
|
void MouseMove(int x, int y, int dx, int dy);
|
||||||
|
void Display();
|
||||||
|
private:
|
||||||
|
//Player* player;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user