posted by REDFORCE 2017. 4. 7. 14:59

#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


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


이번 글 부터는 #2 FrameWork에 대해서 설명하도록 하겠습니다.


실질적으로 FrameWork를 통해 게임을 만들 때 어떤식으로 만들지


그리고 어떤식으로 Framework를 활용할지에 대해서 주로 거론하며

각 클래스들의 역할과 개념을 설명드릴 예정입니다.



Graphics Class 는 DirectX Device를 생성하고

Game 에서 이용하기 위해 어떤 정보들을 담고있는지 보도록 하겠습니다.


1. struct VertexC


첫 번째로 볼 사항은 Vertex 구조체 입니다.


모든 이미지의 텍스쳐는 vertex 좌표가 필요합니다.

따라서 그 좌표에서 사용 될 vertex 구조체가 다음과 같이 정의되어있습니다.



2. struct SpriteData


두 번째로 볼 사항은 앞으로 사용할

모든 2D 이미지(스프라이트 이미지)를 담고있을 구조체 입니다.


스프라이트 구조체 안에는

 + width / height (이미지 크기)

 + x ,y (스크린 좌표)

 + scale (이미지 스케일)

 + angle (이미지 회전 각도)

 + rect (스프라이트 출력할 이미지 RECT)

 + texture (이미지 텍스쳐)

 + flipHorizontal / flipVertical (이미지 상하좌우 반전 여부)


값들이 있습니다. 각각 int / float / rect / LP_Texture / bool 값들로 이루어져있습니다.


3. Graphics Class Member


세 번째로 Graphics 클래스의 private: 접근한정자 안에 선언 된 변수들입니다.



위부터 차례대로 Graphics에서 사용하는 내용들을 위한 변수들이 있습니다.


 + LPDIRECT3D9            (directX)

 + LPDIRECT3DDEVICE9   (directX device)

 + LPD3DXSPRITE           (directX Sprite)

 + LPD3DXLINE              (dxLine)


d3dpp / pMode (DirectX를 설정하기 위한 변수)

pOcclusionQuery / numberOfPixel(pixel collision에서 사용하는 변수)


그 외에 hwnd / 전체화면 여부 / directX에서 설정할 해상도 width / height 값 / 배경 값


등등..설정할 변수들이 있습니다.



그 아래로 수 많은 함수들이 선언되어있습니다만

현재 헤더에서 일일히 설명하기엔 분량이 많아지므로 


cpp 파일에서 함께 다루면서 설명하도록 하겠습니다.



아래에는 헤더 파일의 코드 전체가 담겨져 있습니다.


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

June_Engine #2_Graphics.cpp (2)  (0) 2017.04.17
June_Engine #2_Graphics.cpp (1)  (0) 2017.04.15
June_Engine #1_MainNode  (0) 2017.04.07
June_Engine #1_EngineError.h  (0) 2017.04.07
June_Engine #1_EngineCore.cpp (2)  (0) 2017.04.07