프로그래밍/Win32 API
##5. 삼각함수
hscho00
2020. 8. 20. 17:12
스크류 총알, 실드 구현
스토킹 몬스터
void CMonster::TracePosition(float _x, float _y)
{
float disXPos = (float)_x - m_info.fX;
float disYPos = (float)_y - m_info.fY;
float diaSquared = disXPos * disXPos + disYPos * disYPos;
if (diaSquared > m_info.fSpeed * m_info.fSpeed)
{
float hypotenuse = sqrtf(diaSquared);
float fRadFront = acosf(disXPos / hypotenuse);
// acosf는 0 ~ PI 값을 반환하므로 180도가 넘어가면 보정해야 함
if (disYPos > 0.f)
fRadFront = 2 * PI - fRadFront;
m_info.fX += m_info.fSpeed * cosf(fRadFront);
m_info.fY -= m_info.fSpeed * sinf(fRadFront);
}
}