이번에는 캐릭터를 출력해 보도록 하자.
캐릭터 이동 정보를 담을 구조체 하나를 선언하자.
좌표는 당연히 x,y축이다.
그 밑에는 x,y를 편하게 사용하기 위해 정의한 함수다.
이 모든것을 header.h파일에 소스를 적어주면 된다.
그리고 저 사진에는 안나왔지만
전처리 헤더파일을 한 번만 참조해주기 위해서
맨 위에 #pragma once를 적어주도록 하자.
header.cpp파일에 함수를 정의해 놓은 것이다.
캐릭터에는 여러가지 상태가 있을것이다.
Direction
바라보는 방향 |
설명 | |
RIGHT |
캐릭터가 오른쪽을 바라본다 | |
LEFT |
캐릭터가 왼쪽을 바라본다. |
State
캐릭터 상태 |
설명 |
IDLE |
아무런 움직임이 없는 상태 |
WALK |
오른쪽 혹은 왼쪽으로 걷는 상태 |
JUMP |
점프를 뛴다.(상승한다.) |
DROP |
점프를 뛴다.(하강한다.) |
ATTACK |
공격모션 |
HIT |
충돌 |
캐릭터의 좌표이동에 대한 정보를 셋팅하는 동시에 가져오기 위하여
멤버 변수로 변수를 하나 만들어주고
멤버 함수도 Set과 Get을 만들어 주었다.
Object에 만들어 곧바로 상속 받게 한다.
변수명 |
설명 |
CGPoint m_srcPos; |
리소스에서의 x,y좌표 |
CGPoint m_srcSize; |
리소스의 사이즈를 나타낸다. |
CGPoint m_offset; |
출력된 리소스의 출력위치 변환을 위한 변수 |
int m_iDirection; |
캐릭터가 바라보는 방향 |
int m_iPrevState; |
캐릭터의 전 상태 |
int m_iState; |
현재 캐릭터의 상태 |
int m_nFreame; |
리소스 프레임 |
float m_dFrameDelay; |
다음 프레임 까지의 경과시간 |
float m_MoveSpeed; |
움직이는 속도. |
void Animation();
void Action();
이 두개의 멤버 함수는
각각 캐릭터의 상태 변화에 따른 애니메이션 적용과
사용자의 키보드의 키값에 따른 변화를 적용할 함수이다.
이것 다음 글에서 구현 하도록 하고 이번 글에서는 캐릭터를 출력만 하겠다.
선언한 변수들을 모조리 초기화 한다.
MakePoint는 헤더에서 구현한 구조체의 x,y값을 정의한 함수이다.
만들어진 리소스를 사용하기 위하여 Hero의 헤더를 포함 시킨다.
그리고 클래스 변수를 전역 변수로 선언한 뒤
비트맵DC 하나 전역변수로 선언해 캐릭터를 가져 올 수 있게 한다.
메세지 루프 구문에서는 캐릭터를 뿌려주는 랜더 함수를 불러오도록 한다.
g_hHero에 LoadBitmap으로 비트맵을 불러온다.
동적 할당한 메모리에 초기화 함수를 불러와 메모리DC와 캐릭터 리소스를 셋팅 및 초기화 해준다.
이 과정이 완료되면 메모리 해제를 잊지 말도록 하자.
결과
'API > 이론' 카테고리의 다른 글
캐릭터 뒷배경 검정색 없애기. (0) | 2016.04.29 |
---|---|
시간 경과에 따른 애니메이션 (0) | 2016.04.29 |
배경을 클래스화 해서 출력하기. (0) | 2016.04.27 |
여러 이미지 출력을 위한 소스정리 및 파일 나누기 (0) | 2016.04.26 |
배경화면 출력하기. (0) | 2016.04.26 |