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