12
C# 으으 으으 으으 으으으 (3) 으으으 NHN NEXT

C#으로 게임 엔진 만들기(3)

  • Upload
    -

  • View
    1.002

  • Download
    8

Embed Size (px)

DESCRIPTION

Draw Grid

Citation preview

Page 1: C#으로 게임 엔진 만들기(3)

C# 으로 게임 엔진 만들기 (3)

김지환NHN NEXT

Page 2: C#으로 게임 엔진 만들기(3)

목표

• 지형 ( Grid ) 그리기

Page 3: C#으로 게임 엔진 만들기(3)

DRAW GRID

• 이제 점점 코드가 많아지고 중복되는 부분 또한 많아지니 미리 프로젝트를 다운로드 받으세요 .

• 중요한 부분에 대해서만 설명하도록 하겠습니다 .

사용했던 프로젝트https://github.com/jihwankim/CS_PPT

Page 4: C#으로 게임 엔진 만들기(3)

DRAW GRID

• 오늘의 결과물입니다 .개수와 크기를 정해서 격자를 그리고 화면에 렌더합니다 .

Page 5: C#으로 게임 엔진 만들기(3)

DRAW GRID

• Core Class 의 구조입니다 .

DirectX Class

C++

CLI

Wrapped

Core ClassInit

BeginScene

EndScene

CleanUp

SetCamera

GetDevice

D3D 를 초기화합니다 .

Render Begin

Draw End

할당된 리소스를 해제합니다 .

시점을 설정합니다 ..

생성된 Device 의 포인터를 반환 .

Page 6: C#으로 게임 엔진 만들기(3)

DRAW GRID

• Ground Class 는 격자 ( Grid ) 를 그려주는 클래스입니다 .

CGround Class

C++

CLI

Wrapped

Ground ClassCreate

OnRender

OnRelease

Core Device 에 Ground 를 생성Ground Render

할당된 메모리를 해제합니다 .

Page 7: C#으로 게임 엔진 만들기(3)

DRAW GRID

• 메인 코드입니다 . ( C# )

• 이전과 달라진 점은 Core 의 Render 부분이 DrawScene, EndScene 으로 분리되었습니다 .그리고 Ground 클래스가 새로 생겼습니다 .

Page 8: C#으로 게임 엔진 만들기(3)

DRAW GRID

• Ground Class 입니다 . ( C++ )

• Create 메소드를 보면 DirectX 를 초기화 할 때 생성한 Device 를 인자로 받아야 합니다 .이 Device 정보를 가지고 Vertex Buffer, Index Buffer 등을 생성합니다 .

그 외에 열 , 행의 개수나 격자의 크기를 받습니다 .

Ground Class ( 출처 : http://nowcampus.tistory.com/entry/10 )

Page 9: C#으로 게임 엔진 만들기(3)

DRAW GRID

CLI 로 래핑한 Ground 클래스입니다 .

Ground 는 초기화한 Device 정보가 필요합니다 .그래서 Core 의 GetDevice() 를 통해 그 정보를 받아야 하기 때문에 매개 변수로 Core 를 전달해 줘야 합니다 .

여기서 CLI 문법이 몇 개 나오는데 알아보도록 하겠습니다 .

Page 10: C#으로 게임 엔진 만들기(3)

DRAW GRID

CLICore::Core ^coreCLI 에서 관리 클래스 (ref) 는 복사 생성자를 가지지 못합니다 .그래서 매개 변수로 클래스를 넘겨주지 못합니다 .그러므로 인자로 Reference 를 넘겨주어야 하는데 그 때 사용하는 키워드가 ^ 입니다 .^ 는 C++ 의 * 과 비슷한 용도이며 Handle 이라 부릅니다 .

그래서 클래스를 넘겨줄 때 , 복사 생성자를 사용할 수 없으므로 핸들을 참조하도록 ^ 키워드를 사용하는 것입니다 .

Page 11: C#으로 게임 엔진 만들기(3)

Ground Object 를 이용해 기본적인 땅을 그려봤습니다 .

다음 PPT 엔 평지에 높이맵 ( Height map ) 을 적용하고 카메라 조작에 대해 설명하겠습니다 .

사용했던 프로젝트https://github.com/jihwankim/CS_PPT

DRAW GRID

Page 12: C#으로 게임 엔진 만들기(3)

END