modified scene management by removing useless class scenemanager

This commit is contained in:
Lendemor 2015-07-29 23:22:01 +02:00
parent 7fd5fbde46
commit 8e14399b3f
6 changed files with 37 additions and 59 deletions

View File

@ -7,7 +7,7 @@ else(WIN32)
set(SYSTEM_LIB_PATH "linux")
endif(WIN32)
set(LIB_SRC_LIST engine.cpp scenemanager.cpp scene.cpp)
set(LIB_SRC_LIST engine.cpp scene.cpp)
set(LIBRARY_NAME ${PROJECT_NAME})
set(EXECUTABLE_NAME "test${PROJECT_NAME}")

View File

@ -20,16 +20,16 @@ void Engine::update()
m_input->updateEvents();
}
void Engine::render()
{
// work for SparrowRenderer
}
void Engine::updatePhysics()
{
// work for Bullet
}
void Engine::render()
{
// work for SparrowRenderer
}
unsigned int Engine::getTime()
{
return m_timeStamp;
@ -39,3 +39,8 @@ unsigned int Engine::getDeltaTime()
{
return m_timeStamp - m_lastTimeStamp;
}
void Engine::setCurrentScene(std::string scene)
{
p_currentScene = RESOURCE_GET(Scene,scene);
}

View File

@ -1,7 +1,8 @@
#ifndef ENGINE_H
#define ENGINE_H
#include "SparrowInput/input.h"
class Input;
class Scene;
class Engine{
public:
@ -15,11 +16,15 @@ public:
unsigned int getTime();
unsigned int getDeltaTime();
//scene-related function
void setCurrentScene(std::string scene);
private:
Input* m_input;
sf::Clock m_clock;
unsigned int m_timeStamp = 0;
unsigned int m_lastTimeStamp = 0;
Scene* p_currentScene;
};
#endif

20
scene.h
View File

@ -23,4 +23,24 @@ private:
SceneNode* m_parentNode;
};
class CameraSceneNode : public SceneNode
{
};
class LightSceneNode : public SceneNode
{
};
class TerrainSceneNode: public SceneNode
{
};
class ObjectSceneNode : public SceneNode
{
};
#endif // SCENE_H

View File

@ -1,27 +0,0 @@
#include "scenemanager.h"
#include "scene.h"
SceneManager::SceneManager()
{
}
void SceneManager::addScene(std::string scene_name, Scene *p_scene)
{
scenes[scene_name] = p_scene;
}
void SceneManager::setCurrentScene(std::string scene)
{
if(scenes.count(scene)) p_currentScene = scenes[scene];
}
void SceneManager::update()
{
p_currentScene->update();
}
void SceneManager::render()
{
p_currentScene->render();
}

View File

@ -1,25 +0,0 @@
#ifndef SCENEMANAGER_H
#define SCENEMANAGER_H
#include <string>
#include <unordered_map>
//define macro similar to the one in SparrowResource ?
class Scene;
class SceneManager
{
public:
SceneManager();
void addScene(std::string scene_name, Scene* p_scene);
void setCurrentScene(std::string scene);
void update();
void render();
private:
Scene* p_currentScene;
std::unordered_map<std::string, Scene*> scenes;
};
#endif // SCENEMANAGER_H