Started Meinkraft project
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
#include "StateHandler.h"
|
||||
#include "MenuState.h"
|
||||
#include "WorldState.h"
|
||||
|
||||
StateHandler* StateHandler::instance = nullptr;
|
||||
|
||||
StateHandler::StateHandler()
|
||||
{
|
||||
available = false;
|
||||
CState = MENU;
|
||||
CurrentState = new MenuState();
|
||||
CurrentState->init();
|
||||
available = true;
|
||||
}
|
||||
|
||||
StateHandler::~StateHandler()
|
||||
{
|
||||
delete CurrentState;
|
||||
}
|
||||
|
||||
StateHandler* StateHandler::getInstance()
|
||||
{
|
||||
if (instance == nullptr)
|
||||
instance = new StateHandler();
|
||||
|
||||
return instance;
|
||||
}
|
||||
|
||||
void StateHandler::update(float deltaTime)
|
||||
{
|
||||
if(available)
|
||||
CurrentState->update(deltaTime);
|
||||
}
|
||||
void StateHandler::draw()
|
||||
{
|
||||
if(available)
|
||||
CurrentState->draw();
|
||||
}
|
||||
|
||||
void StateHandler::changeState(EState newState)
|
||||
{
|
||||
if (CState == newState)
|
||||
return;
|
||||
|
||||
available = false;
|
||||
|
||||
CurrentState->exit();
|
||||
|
||||
switch (newState)
|
||||
{
|
||||
case WORLD:
|
||||
CurrentState = new WorldState();
|
||||
case MENU:
|
||||
CurrentState = new MenuState();
|
||||
}
|
||||
|
||||
CState = newState;
|
||||
CurrentState->init();
|
||||
|
||||
available = true;
|
||||
}
|
||||
Reference in New Issue
Block a user