-
포물선(벡터)을 이용한 미사일 날리기 - Cocos2D 활용Algorithm with C/Math 2021. 4. 7. 07:19
아래의 글과 연관성이 많으므로 아래의 글을 먼저 읽고 오는 것을 추천함.
designatedroom87.tistory.com/429
Cocos2D에서는 좌측하단이 원점이다.
우선 우리가 여기에서 만들어 볼 것을 영상으로 먼저 보자.
프로그램 실행영상
아래는 미사일의 이동 방향을 나타낸 것이다.
아래의 그림은 위의 내용을 좀 더 자세히 그린 그림이다.
v_0 벡터를 통해 미사일의 이동 방향 벡터를 아래와 같이 구할 수 있다.
이 이동 방향 벡터를 이용해서 미사일의 위치를 이동시키면 된다.
그리고 나서, v_0 벡터의 x값과 y값을 조절하는데,
이는 x축으로는 공기의 저항을 이유로 값을 줄이고 y축으로는 중력이 작용하여 값을 줄이도록 한다.
그러면 위와 같이 기존의 v_0의 방향이 바뀌게 되는데, 이에 따라 미사일의 이동 방향 벡터 또한 방향이 바뀌게 된다.
이동 방향을 구할 때, 위의 그림에서는 약간 다르게 속도를 곱해주고 있는데,
이는 일종의 비례 상수로 보도록 한다.
벡터의 성질 상, 비례 상수를 곱하더라도 방향은 바뀌지 않으니 괜찮다.
이동 방향 벡터는 위에서 속도라는 변수를 곱해주었기 때문에, 일종의 속도이므로
여기에 일정한 값이 들어오는 시간 변수 dt를 곱하면 이동할 값이 나오므로
이는 위치라는 값과 덧셈의 의미가 잘 어울린다.
아래의 Tick 멤버함수에서 미사일의 이동 방향 벡터 설정하는 함수와
미사일의 이동 시키는 함수를 호출한다.
소스 파일 및 이미지 파일
'Algorithm with C > Math' 카테고리의 다른 글
벡터의 내적(Dot product) (0) 2021.04.08 포물선(이차함수)을 활용해서 원하는 물체에 미사일 날리기 - Cocos2D 활용 (0) 2021.04.07 벡터를 활용한 미사일을 날리기 - Cocos2D를 활용 (0) 2021.04.06 보간 회전 - cocos2D 활용 (0) 2021.04.06 평면의 방정식을 활용한 마인크래프트 블록 붙이기(Unity 활용) (0) 2020.11.30