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;
|
||||
//int currentModel = 0;
|
||||
|
||||
Player *player;
|
||||
|
||||
StateHandler *statehandler;
|
||||
|
||||
void display()
|
||||
@@ -49,24 +49,15 @@ void display()
|
||||
|
||||
statehandler->GetCurrentState()->Display();
|
||||
|
||||
player->Display();
|
||||
//player->Display();
|
||||
|
||||
glutSolidCube(10.0);
|
||||
//glutSolidCube(10.0);
|
||||
|
||||
glDisable(GL_TEXTURE_2D);
|
||||
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()
|
||||
{
|
||||
@@ -74,18 +65,9 @@ void idle()
|
||||
float deltaTime = frameTime - lastFrameTime;
|
||||
lastFrameTime = frameTime;
|
||||
|
||||
statehandler->GetCurrentState()->Keyboard(keys);
|
||||
statehandler->GetCurrentState()->Keyboard(keys,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();
|
||||
}
|
||||
|
||||
@@ -197,8 +179,7 @@ void configureOpenGL()
|
||||
}
|
||||
|
||||
void loadModels()
|
||||
{
|
||||
player = new Player();
|
||||
{
|
||||
statehandler = new StateHandler();
|
||||
|
||||
statehandler->Navigate(statehandler->WORLD_STATE);
|
||||
|
||||
@@ -264,7 +264,6 @@ void Model::loadMaterialFile(std::string fileName, std::string dirName)
|
||||
|
||||
Model::MaterialInfo::MaterialInfo()
|
||||
{
|
||||
Texture *texture;
|
||||
hasTexture = false;
|
||||
}
|
||||
|
||||
|
||||
+52
-16
@@ -1,41 +1,77 @@
|
||||
#include "Player.h"
|
||||
|
||||
|
||||
|
||||
Player::Player()
|
||||
{
|
||||
right = new Weapon("models/weapons/ZwaardMetTextures/TextureZwaard.obj");
|
||||
left = new Weapon("models/weapons/ZwaardMetTextures/TextureZwaard.obj");
|
||||
|
||||
}
|
||||
|
||||
|
||||
Player::~Player()
|
||||
{
|
||||
delete right;
|
||||
delete left;
|
||||
if(right != nullptr)
|
||||
delete right;
|
||||
if(left != nullptr)
|
||||
delete left;
|
||||
/*if (player != nullptr)
|
||||
delete player;*/
|
||||
}
|
||||
|
||||
void Player::Display(void)
|
||||
{
|
||||
if (right != nullptr)
|
||||
{
|
||||
glPushMatrix();
|
||||
glTranslatef(2.5f,0,-4.5f);
|
||||
{
|
||||
right->draw_weapon();
|
||||
glPopMatrix();
|
||||
}
|
||||
|
||||
if (left != nullptr)
|
||||
{
|
||||
glPushMatrix();
|
||||
glTranslatef(-0.5f,0,-4.5f);
|
||||
left->draw_weapon();
|
||||
glPopMatrix();
|
||||
|
||||
{
|
||||
left->draw_weapon();
|
||||
}
|
||||
|
||||
/*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.rotY, 0, 1, 0);
|
||||
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
|
||||
{
|
||||
public:
|
||||
Player();
|
||||
~Player();
|
||||
|
||||
struct Eyes
|
||||
@@ -18,11 +17,22 @@ public:
|
||||
} eyes;
|
||||
|
||||
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:
|
||||
int level;
|
||||
int xp;
|
||||
Weapon* right = nullptr;
|
||||
Weapon* left = nullptr;
|
||||
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 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 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 WorldState()); //WORLD_STATE
|
||||
|
||||
CurrentState = INIT_STATE;
|
||||
//CurrentState = INIT_STATE;
|
||||
CurrentState = WORLD_STATE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,12 +1,49 @@
|
||||
#include "WorldState.h"
|
||||
#include "Player.h"
|
||||
|
||||
|
||||
|
||||
WorldState::WorldState()
|
||||
{
|
||||
/*player = Player::GetInstance();*/
|
||||
}
|
||||
|
||||
|
||||
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
|
||||
#include "Header.h"
|
||||
#include "State.h"
|
||||
#include "Player.h"
|
||||
|
||||
class WorldState : public State
|
||||
{
|
||||
public:
|
||||
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