[DirectX 11] 8방향 애니, 구르기, 보스 AI
8방향 애니
- 우선 상태 패턴에 따라 Idle, Walk State 구분.
- 프레임 스프라이트는 x축은 한 애니메이션의 변화, y축은 방향의 변화가 있는 이미지로 준비.
- 각 게임 유닛 클래스들의 상위 클래스인 Character에서 Target을 바라보는 함수를 만듦 (LookTarget)
- 각 radian (혹은 degree) 별, 방향 상태값에 방향에 대한 enum 값으로 대입.
- 프레임 y번째에 해당 상태값을 넣어줌
- 캐릭터와 자신의 각도에 따라 8방향 애니메이션 출력
구르기
- 마우스와 각도가 아닌 이동할 각도(moveDir)로 방향 전환
- 위 LookTarget 함수를 공용으로 사용할 수 있게 해 움직이는 각도에 따라 구르기 8방향 애니메이션 출력
- Move할 때 cos(timeRoll / 0.6f * DIV2PI) * DELTA 를 추가로 곱해주어 점감되는 속도를 만듦
- 구르기 최초에는 빠르게 움직이고 일어설 때쯤엔 느려지는 자연스러운 움직임 구현
보스 AI
- Idle, Look, Move, Attack 상태 구분
- 각 범위의 원을 두어 타겟과의 거리가 각 반지름 안에 들어오면 해당 상태로 전환, 패턴 실행.
- 원의 범위는 enum에 거리값을 대입해 직관적으로.
- enum class BossState { IDLE = 400, …
- range[0]->scale = Vector2(scale, scale) * 2.0f;
- if (distance < (float)BossState::LOOK)
댓글남기기