posted by REDFORCE 2017. 4. 19. 23:09

#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


-----------------------------------------------------------------------


Image Class의 header 파일을 살펴봤던 것에 이어서, 


.cpp 내용을 살펴보도록 하겠습니다.


1. 생성자 / 소멸자 


간단하게 생성자부터 확인하도록 하겠습니다.



생성자 내엔 역시나 주요 변수들에 대한 초기화가 이루어집니다.


포인터 형태인 변수는 null 값으로 초기화가 됐습니다만,

최근에는 모던 C++을 공부하면서 nullptr을 사용하는 것이 더 낫다 보여집니다.



소멸자 아무 내용도 없어서 여기에 담진 않았습니다.



2. initialize


두 번째 내용은 의미있는 초기화를 담당하고 있는 initialize 함수 입니다.


try - catch 구문으로 감싸져있으며, 어떤 exception이 발생할 시엔 return false 값을 내뱉고 종료합니다.


try 안에서는 매게변수로 받아온 


 (1) Graphics*

 (2) width / height

 (3) cols

 (4) textureManager*


값을 그대로 대입합니다.


아마 이글에서 textureManager (?) 하고 의문이 들수 있습니다.


지금까지 언급했던 내용중에는 textureManager라는 항목이 없었거든요.

많이 궁금하시겠지만 일단은 그냥 그런가보다 하고 넘어가시기 바랍니다.


여기서 꼭 숙지할 점은 받아온 각 파라미터의 값들이 spriteData 안에 대입이 되어진다는 것을 확인하시기 바랍니다.


그리고 Layer 라고 하는 클래스도 갑자기 등장했습니다만, 

추후 Layer 파트에 대한 메뉴얼이 있으므로 그곳에서 설명드리도록 하겠습니다.



3. Draw Functions


세 번째 Draw 함수들 입니다.


Graphics에서 보신것과 같이 기본적인 Image를 Draw 하는 함수와

Image의 Rect가 어느정도 크기인지를 볼 수 있게 도와주는 drawRect 함수입니다.


(drawNine 함수는 현재 제대로 작동하지 않아서 언급하지 않습니다. 추후 버그수정 후 다시 올리도록 하겠습니다)



draw 함수들에 대해서는 의미적으로 이미 바로 알 수 있기 때문에


어렵게 설명할 내용은 없습니다.


현재 Image 클래스에서 갖고있는 spriteData 구조체에 들어가있는 Texture와 각종 값들을 토대로 Texture 이미지를 그대로 graphics 클래스에게 부탁하여 drawSprite 함수를 호출합니다.



나머지 함수부터는 다음 글로 이어서 적도록 하겠습니다.

'MyProject > SephyEngine' 카테고리의 다른 글

June_Engine #3_Layer Class  (0) 2017.04.21
June_Engine #3_Image Class .cpp (2)  (0) 2017.04.20
June_Engine #3_Image (Class) & SpriteData (Struct)  (0) 2017.04.19
June_Engine #2_Graphics.cpp (3)  (0) 2017.04.18
June_Engine #2_Graphics.cpp (2)  (0) 2017.04.17