Windows API
#몬스터 추적 (feat. 유도탄)
HYuk
2021. 6. 10. 14:19
728x90
#몬스터가 플레이어를 추적
몬스터가 플레이어를 추적하려면
acosf값을 써야한다.
acosf값을 사용하여 플레이어의 좌표와 몬스터의 좌표를 구해서
x값의차/몬스터와 플레이어거리
를 구한후 acosf에 넣어주면 된다.
그럼 방향 즉, 단위벡터가 나오는데
문제는 acosf 값으로는 0~180도 까지 밖에 나타내지 못한다.
즉 180도를 넘어가는 순간부터는 -1을 곱해줘서 나타내주어야 한다.
if (m_pTarget->Get_Info().fY > m_tInfo.fY) // 플레이어가 몬스터보다 아래 있을 때,
m_fAngle *= -1.f;
m_tInfo.fX += cosf(m_fAngle * PI / 180.f) * m_fSpeed;
m_tInfo.fY -= sinf(m_fAngle * PI / 180.f) * m_fSpeed;
즉 플레이어(타겟)이 몬스터 보다 아래 있을 때는 각도에 -1을 곱해준 후 방향을 구하면 된다.
그럼 그 방향을 가지고 cos, sin을 이용해서 그쪽으로 이동시키면된다.
#유도탄 ?
유도탄 구현도 이런식으로 구현 하면된다.
유도탄은 좀 자연스럽게 나가게 하기 위해서
목적 각도로 조금씩 변경해주면 된다
728x90