WIN32API FrameWork/원본
220504_WIN32API_Framework_5-3_실제 Scene 만들고 실행(MainScene)
hyrule
2022. 5. 8. 18:21
* 이제 각 Scene은 코드가 간단해진다.
* Scene 별로 Init 함수에 생성할 게임오브젝트를 생성해 주면 끝
-> 각 Scene에서는 배치할 GameObject를 생성
-> SceneManager에서는 Scene을 생성
* 일단 작동하는 개체가 Player 뿐이므로 Player 객체를 생성해서 작동하는지 확인해 보자
* MainScene을 아래와 같이 만들어 준다.
//Class CMainScene
//MainScene.h
#pragma once
#include "Scene.h"
class CMainScene :
public CScene
{
friend class CSceneManager;
protected:
CMainScene();
virtual ~CMainScene();
public:
bool Init();
//이제 씬별 게임오브젝트의 Render과 Update는
//개별 씬에서 하는 것이 아니라
//CScene 클래스에서 모아놓은 GameObject 리스트를
//iterator가 순회하면서 render할 것임.
//-> 씬 별로 Update와 Render은 필요 없음 이제
/*void Update(float DeltaTime);
void Render(HDC hDC, float DeltaTime);*/
};
* CreateObject<CPlayer>("Player");
//Class CMainScene
//MainScene.cpp
#include "MainScene.h"
#include "../GameObject/Player.h"
CMainScene::CMainScene()
{
}
CMainScene::~CMainScene()
{
}
bool CMainScene::Init()
{
//앞으로는 씬에서 필요한 게임 오브젝트들을 직접 생성하는 것이 아닌,
//각 Scene에서 생성해 준다.
CreateObject<CPlayer>("Player");
return true;
}
* SceneManager의 Init 함수 부분에 아까 만들어 놓았던 CreateScene 함수를 통해 Scene을 생성해 주면 된다.
bool CSceneManager::Init()
{
//템플릿에 CMainScene을 넣어 CreateScene 함수를 통해 생성
CreateScene<CMainScene>();
return true;
}