* 이제 각 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;
}
'WIN32API FrameWork > 원본' 카테고리의 다른 글
220509_WIN32API_6-2_총알 발사 - 쿨타임 구현과 실제 발사 (0) | 2022.05.12 |
---|---|
220509_WIN32API_6-1_총알 발사 - 총알 클래스 구현 (0) | 2022.05.12 |
220504_WIN32API_Framework_5-2_Class Scene (0) | 2022.05.08 |
220504_WIN32API_Framework_5-1_SceneManager (0) | 2022.05.08 |
220504_WIN32API_Framework_4_스마트 포인터(참조 카운트) (0) | 2022.05.06 |