[Cocos2d-x] Move액션의 속도, 움직임 관련하여 DATA_OLD/Cocos2d-x Study2015. 1. 19. 17:18
cocos2d-x의 Move액션은 크게 MoveTo와 MoveBy로 나뉘는데
1. 해당 액션을 수행할 시간을 갖는다.
2. 현재 위치에서부터 목표 지점까지 일정한 속도로 움직인다.
이와 같은 특징을 가진다.
하지만,
하나의 액션이 끝나기 전에 다음 동작에 대한 입력이 들어올 경우가 있다.
이때는 애가 동작이 끝나기 전에 다음 명령을 받고는, 움직이던 중간의 위치를 현재값으로 잡고 다시 목표지점까지의 거리를 계산하여 주어진 시간만큼 움직이게 된다.
이렇게 되면 프로그래머가 예상하지 못했던 기이한 속도로 움직이는건 물론이고, 생각지도 못했던 위치로 움직이기까지 한다.
(내 예상은 기본적으로 MoveTo는 MoveBy를 기반으로 계산하는게 아닌가 싶다.)
이 문제는 대개
1. 한 동작이 끝나기 전에 다음 동작이 들어와서 이 두개를 중첩하여 수행한다.
2. 고정된 시간값에 위치나 좌표값이 달라지기 때문에 속도가 달라진다.
이 두가지 요인에 의해서이다.
내가 만든 tiny Flight의 한부분을 보면
이런 부분이 있다.
즉, 위에서 언급한 문제를 해결하기 위해서는
1. 액션에 태그를 준 뒤, 한 객체가 움직일 때는 runAction과 stopAction을 이용해서 한번에 하나의 액션만 수행하게 한다.
2. 현재위치 - 목표 위치간의 거리와 시간값을 이용하여 일정한 속도로 움직이도록 해준다.
이 두가지의 테크닉이 필요하다.
'DATA_OLD > Cocos2d-x Study' 카테고리의 다른 글
[Cocos2d-x] 안드로이드 포팅 시 Android.mk 파일 수정 관련 (0) | 2015.02.14 |
---|---|
[Cocos2d-x] AppActivity에 Google Play랑 Admob 더하기 (0) | 2015.02.14 |
[Cocos2d-x] Google Play 연동법(1) - 라이브러리 추가 (0) | 2015.02.09 |
[Cocos2d-X] perhaps java_home does not point to the jdk (0) | 2015.01.19 |
[물리 엔진] 기본 예제 (0) | 2014.11.18 |