#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 |