42일차(3-02) 삼각함수
쥬신게임개발학원/2. 윈도우 API를 이용하여 2D어플리케이션 개발백그라운드를 감싸는 원을 만들고 중심에서 반지름만큼 떨어진 원에서 몬스터 생성
Regeneration_Monster
{
CGameObject* pGameObject;
for(int i = 0; i <20; ++i)
{
pGameObject = CMonster::Create();
if(nullptr == pGameObject)
return false;
CObject_Manager::Get_Instance()->Add_..
}
}
메인앱에 dwTime 변수 (리젠 시간용)
dwTime은 이니셜라이즈 리스트에서 초기화
메인앱-업데이트에서 리젠 몬스터 호출
몬스터의 위치!
거리와 각도(랜덤)를 알면 내접하는 원의 자리를 알 수 있다
사인 코사인 탄젠트
코사인이 가장 많이 쓰지 않을까(추후에 내접..)
삼각함수
점 2개가 있으면 직각 삼각형을 만들 수 있다
피타고라스의 정의
밑변제곱 높이제곱 빗변의 제곱
직각삼각형의 하나의 각은 90도(직각) 하나의 각은 임의의 각일때
밑변/빗변 = 1/루트2
45도 1:1:빗변의 길이?(->루트2)->1/루트2->2/2루트2
30도 1:1:
수학의 함수 Y=2x + 1
Y = 각도
삼각함수: 각도와 Y, Y에 따른 빗변/높이 밑변/높이
사인:
사인 세타:직각삼각형일때 하나의 각도가 세타일 때 빗변/높이
코사인 : 빗변/밑변
코사인 세타:직각삼각형일때 하나의 각도가 세타일 때 빗변/밑변
탄젠트 : 밑변/높이
나는 빗변의 길이와 높이를 알고 있다->밑변의 길이와 높이를 알면 x,y를 구할 수 있다
몬스터가 태어나는 x1 y1을 알 고 싶다!
->나는 x와 y를 알고(BG의 중심), 임의의 각과 임의의 빗변을 안다
->밑변의 길이와 높이를 알면 x1, x2를 알 수 있다
x1 = x+밑변
y1 = y-높이
밑변 = 빗변의 길이 * 코사인 세타
높이 = 빗변의 길이 * 사인 세타
cosf(임의의 각) = 코사인세타
각도가 고정적이면 코사인세타는 일정하다
->임의의 각은 Degree가 아니다
math.h에서 사용하는 각도의 단위
각도가 커질수록 원의 호의 길이가 늘어난다 -> 라디안
원의 호의 길이 = 2*파이(원주율->360도 일때의 라디안)*r(반지름)
180도 = 파이
90도 = 2/파이
1도 일때의 라디안 = 2파이/360 = 파이/180
//각도
m_fAngle = rand() % 360;
//빗변의 길이
m_fDistance = 50.f;
m_fX =WINSIZEX * 0.5f + m_fDistance * cosf(m_fAngle * (3.14f / 180.f());
m_fY = WINSIZEY * 0.5f + m_fDistance * sinf(m_fAngle * (3.14f / 180.f());
'쥬신게임개발학원 > 2. 윈도우 API를 이용하여 2D어플리케이션 개발' 카테고리의 다른 글
프린스 (1) | 2017.07.21 |
---|---|
프린스 작업 (1) | 2017.07.17 |
페르시아 (1) | 2017.07.11 |
pop2 (1) | 2017.07.06 |
43일차(3-03) VLD 메모리 릭 체크 (1) | 2017.07.03 |