API/DF.project
Scene.h & Scene.cpp
猫猫
2014. 10. 9. 17:24
반응형
//////////////////////////////////////Scene.h/////////////////////////////////
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #pragma once #include "Header.h" #include "Object.h" #define MAX_OBJECT 1024 class Scene { protected: Object* m_pObjectList[MAX_OBJECT]; virtual void render(); virtual void tick(float dt); public: virtual void addObject(Object* _obj); virtual bool init(); virtual void dealloc() = 0; virtual void run(float dt); }; |
////////////////////////Scene.cpp//////////////////////
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | #include "Scene.h" #include "ST.h" bool Scene::init() { memset(m_pObjectList, NULL, sizeof(m_pObjectList)); return true; } void Scene::addObject(Object* _obj) { for(int i= 0; i < MAX_OBJECT; i++){ if(m_pObjectList[i] != NULL) continue; m_pObjectList[i] = _obj; break; } } void Scene::render() { for(int i= 0; i < MAX_OBJECT; i++){ if (m_pObjectList[i] == NULL) continue; m_pObjectList[i]->render(); } } void Scene::tick(float dt) { for(int i= 0; i < MAX_OBJECT; i++){ if(m_pObjectList[i] == NULL) continue; m_pObjectList[i]->tick(dt); } } void Scene::run(float dt) { this->render(); this->tick(dt); InvalidateRect(ST::call()->m_hHwnd, NULL, false); } |
반응형