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)

댓글남기기