사실.. 툴을 만들 때는 타이머 클래스가 필요가 없긴하다... 툴은 사실 정보를 보거나, 아니면 내부적인 것을 변경, 저장 하는 용도로 쓰기 때문에 프레임에 구애받을 이유는 없다...

하지만.. 나는 툴을 만들면서, 각 구현에 따른 프레임 저하라던지 하는 것들도 볼겸.. 사실.. 엔진 기능 구현 용으로도 확인하고 싶어서.. 그냥 만든다..
 그리고 사실 대충 만들어서.. 그냥 대충...... 이정도 프레임.. 이라는 것만 알 수 있다.. 그럼 대충 만들어 보자...

먼저....

새 항목에서..


cpp 와 h 파일을 만든다.. 그냥 이름은 대충 CTimer로 했다.. (보통은 파일명은 그냥 Timer로 하고 클래스 명을 CTimer로 하는데 그냥 패스.)


헤더 파일 내용도 보다시피 간단하다... windows.h 파일은 GetTickCount 함수를 위해 추가했다.


그리고 이 것이 cpp다.. ( 생성자, 소멸자는 아무 내용도 없으니 생략하고, 딱 이 2개만 만들어주면된다.

 


그리고 Root로 돌아와서 CTimer를 추가하고,


h 파일에서 class를 써주고, 변수를 만들어 준다.
그리고 이전 파일을 보니.. Init 함수는 directX 외에 다른 것들도 쓸 것 같아서 함수를 분리했다.. 내용은 동일하고 함수만 하나 추가.


그리고 초기화 부분에 InitD3D 함수를 부르고 Timer를 생성, 초기화 한다.
또 해제도 잊지말고 꼭 하기..


그리고 process 함수내에 저 3줄을 추가한다. 물론 멤버 변수는 h 파일에 추가해 둔 상태다.


여기까지 했다면, 다 끝나긴했는데.. 사실.. 프레임은 있어도.. 화면에 표시하려면 폰트를 추가해야한다... 나중에 따로 클래스로 만들겠지만, 일단은 확인용으로 바로 써보자... 아래의 변수를 추가한다.


그리고 폰트를 초기화할 함수를 만든다..


함수내의 내용은 다이렉트x 예제에서 바로 들고왔다.


그리고 지금은 빠졌는데, Init 함수 내부에 CreateFont() 함수를 넣는다. 그 뒤에 폰트 변수도 해제 부분을 넣어준다.
.


그리고 render2D() 함수를 따로 만든 후....


render함수 내에 render2D 함수를 넣어주고, 함수 내부의 내용은 아래와 같이만들어 주면 끝이다.


실행하면, 왼쪽 상단에 현재 프레임이 표시된다..


현재는 아무것도 띄우지 않았기 때문에 프레임이 잘 나온다...

이제 앞으로 무엇을 띄우냐에 따라서 점점 줄어들 것이다...

현재의 뼈대를 가지고, 높이 맵을 생성하고, 여러가지 오브젝트 및 지형을 배치하는 맵 툴과 애니메이션 캐릭터를 띄워서 캐릭터 애니메이션을 보고 하는 캐릭터 툴을 구현할 예정이다.

 

 

Posted by 바람처럼..
|