2012-05-17 2 views
0

스프라이트를 움직이고 터치 포인트를 따라 가려고하는데, 지금까지 성공했습니다. 기본적으로 사용자가 화면을 터치 할 때마다 스프라이트가 회전하여 터치 포인트를 향하게되고 스프라이트쪽으로 이동합니다. 부드럽게 터치 포인트를 추적하기 위해 스프라이트 얻기

-(void)handlePan:(UIPanGestureRecognizer *)recognizer{ 

    //calculate tapPosition + angle, then rotate the sprite and move it to the tapPosition: 

    [fish runAction:[CCRotateTo actionWithDuration:0 angle:angle]]; 
    [fish runAction:[CCMoveTo actionWithDuration:0.8 position:tapPosition]]; 
} 

지금 문제는 이것이 UIPanGesture에서와 같이,이 방법은 한 손가락이 화면에 닿아로 지속적으로 실행되고 있다는 것입니다 : 여기 내 기본 코드입니다. 이것은 실제로 이전 동작이 항상 새로운 동작에 의해 무시되기 때문에 회전과 움직임을 매우 고르지 않게 만듭니다.

부드럽 지 않고 유동적입니다. 어떻게하면 부드럽게 할 수 있습니까? 어떻게 든 내 행동이나 어떤 것을 지연시켜야합니까? 어떤 아이디어라도 감사합니다. 감사합니다

답변

4

방향과 움직임을 계속 변경해야하는 경우 작업을 사용하지 마십시오. 액션은 이것에 좋지 않으며 매 프레임마다 새로운 액션을 중지/실행할 때 객체가 전혀 움직이지 않을 수도 있습니다.

대신 개체의 속도 프레임을 프레임 단위로 계산하고 해당 속도를 위치에 추가해야합니다. 속도에서 각도 (회전 방향)를 계산할 수도 있습니다.

0

CCSequence 객체에이 2 애니메이션을 추가하십시오. CCSequence &을 사용하십시오. 그리고이 CCSequence 애니메이션을 스프라이트에 추가하십시오.

이 작품이 당신에게 도움이되기를 바랍니다.

관련 문제