2012-11-21 3 views
3

거리 (아크 거리)가 일정하도록 타원형 패스에서 여러 스프라이트 (이미지)를 이동하려고합니다.균일 한 속도로 타원형 패스에서 여러 스프라이트 이동하기

I 그러나이 가진 문제는 그 거리가,

  • 이동 각도 각 스프라이트 각 시도 장축 주위 부 각도를 움직이는 것은 다르지만 이동 부축 주위를 그 이동하면서 단위 각도보다 - 따라서 다른 거리가 움직였다.

  • x 축을 일정하게 변경하면서 스프라이트를 이동 시키지만, 다시 주요 축을 중심으로 이동합니다.

그렇다면 스프라이트를 따라 잡기/겹치지 않고 일정하게 스프라이트를 이동하는 방법은 무엇입니까?

기타 정보 :

  • 이으로 onMouseMove/onTouchMoved에서 호출 될 것이다 그래서 난 훨씬 CPU 집중적하지 한다 같아요. 그것의 일반적인 알고리즘 질문 ​​비록
  • 하지만 그것이 내가적인 Cocos2D-X

답변

1

그래서이 (이 나를 위해 그것을 해결) 내가하고 결국 무엇을 사용하고 도움이된다면 :

나는 그것을 이동 원의 방정식에서 각도가 1 도씩 증가했습니다. sin/cos (angle) * radius를 사용하여 x와 y를 계산합니다. 그리고 그것을 타원으로 만들기 위해 나는 그것을 요인으로 곱했습니다.

요인은 yIntercept/xIntercept입니다.

는 그래서 결국이 모습

FACTOR = Y_INTERCEPT/X_INTERCEPT; 

//calculate previous angle 
angle = atan((prev_y/FACTOR)/prev_x); 

//increase angle by 1 degree (make sure its not radians in your case) 
angle++; 

//new x and y 
x = cos(newangle) * X_INTERCEPT; 
y = sin(newangle) * X_INTERCEPT * FACTOR; 
관련 문제