#1. Engine System
+ WinMain - EngineSystem
+ EngineCore
+ EngineError
+ MainNode
#2. FrameWork
+ Grahpics
+ Image - SpriteData
+ Layer (현재 글)
+ Input
+ Game
+ Manager
+ Game Interface
+ Utility
#3. Testing Module
+ 2D Image Test
+ 2D Animation Test
+ Game UI Test
-----------------------------------------------------------------------
이번 글에서는 Layer Class에 대해 다루도록 하겠습니다.
Layer Class는 Image Class 내부에 들어가서 사용 되는 클래스 입니다.
즉, 어떤 이미지 또는 애니메이션을 돌릴 때 사용되어지는 모듈 입니다.
Q. 그럼 Layer Class가 대체 무엇인가?
A. 포토샵의 레이어와 비슷하다 생각하시면 될 것 같습니다.
흔히 레이어라 하면 겹겹이 쌓여서 출력되어지는 그런 계층 구조의 기능을 상상하실 수 있을 것 입니다.
그러나 보시고 계신 현재 Layer Class 는 Scene의 Render에서
해당 Layer 단계의 출력 여부(true / false) 를 체크하여 Rendering 해줍니다.
Layer Class 자체는 Layer가 활성화 됐냐 안됐냐 여부만 갖고 있습니다.
그리고 활성화 여부에 맞춰,
씬의 Render 에서는 활성화 된 Layer만 Rendering을 해주게 됩니다.
Layer Class의 헤더 부터 살펴볼까요.
헤더에서 보면
Class Layer
{
private:
enLayerList layer = enLayerList::LAYER_DEFAULT;
bool bRenderSwitch = TRUE;
}
로 되어있습니다.
첫 번째 enum class 형 layer는 현재 Layer클래스가 어떤 레이어 타입인지를 나타내고,
두 번째 bRenderSwitch 값은 레이어의 활성화 여부를 나타냅니다.
기본적으로 두 값은 Default와 true 값으로 초기화되어 들어갑니다.
클래스가 만들어 진 시점에서 일단 한번 바로 활성화하기 위해서 그렇습니다.
만약 레이어만 만들고 쓰고 싶지 않다면
클래스 생성 후 바로 set함수를 이용하여 비활성화 시키면 됩니다.
.cpp 파일의 내용 또한 별게 없습니다.
다만 주의할 점은 생성자가 enum class 형 enLayerList layerstate값을 받게 되어있습니다.
여기까지 봐서는 무슨 말인지 잘 이해가 안가실 수 있으나
간단히 예제 상황을 들면,
액션 게임을 할 때 캐릭터가 필살기를 쓰면 배경이 검은색으로 바뀌면서 배경이나 UI가 사라지고 캐릭터에 카메라 포커스가 맞춰지는 경우를 보신 적이 있을 것 입니다.
위 경우와 같이 어떤 레이어 계층의 렌더링 자체를 껏다 켰다 하실 때 사용 할 수 있습니다.
별로 이런거 쓸일이 없다. 그러면 딱히 Layer Class를 활용하지 않아도 상관없습니다.
레이어 클래스 자체는 여기까지만 설명드리면 어느정도 목적과 그 이용 사례를 스스로 생각하실 수 있으리라 예상 됩니다.
그럼 다음 글 LayerManager Class 를 이어서 설명하도록 하겠습니다.
'MyProject > SephyEngine' 카테고리의 다른 글
June_Engine #3_LayerManager Class .cpp (0) | 2017.04.21 |
---|---|
June_Engine #3_LayerManager Class .h (0) | 2017.04.21 |
June_Engine #3_Image Class .cpp (2) (0) | 2017.04.20 |
June_Engine #3_Image Class .cpp (1) (0) | 2017.04.19 |
June_Engine #3_Image (Class) & SpriteData (Struct) (0) | 2017.04.19 |