2013-05-08 2 views
0

이해가 안되는데,이 작업을 절대 수행 할 수 없습니다. 애니메이션을 재생하고 CCAnimate ans CCMoveTo 클래스를 사용하여 스프라이트를 이동하는 일련의 작업을 원합니다. 이 클래스에 대한 버그 나 특별한 것이 있습니까? CCSequence와 같은 문자열로 함께 움직일 때 움직이거나 움직이지 않기 때문입니다.Cocos2D : 여러 작업 : CCMoveTo CCAnimate

action = [CCSequence actions: 
           [CCMoveTo actionWithDuration:moveDuration position:touchLocation], 
           [CCAnimate actionWithAnimation:self.walkingAnim], 
           [CCCallFunc actionWithTarget:self selector:@selector(objectMoveEnded)], nil]; 
[self runAction:action]; 

I

+0

문제를 해결하는 데 필요한 업데이트가 있습니까? – nzs

답변

1

무엇이 순서가하는 것은 : 도보 애니메이션이 완료되면

  • 가 한 번에 목적지에 도착 목적지까지

    • 이동 자체는 도보 애니메이션
    • 플레이 선택기를 실행하십시오.

    나는 당신이 움직이는 것을 의미하고, 연속적으로 행동하는 것이 아니라 행동을 따로 그리고 동시에 (각각 runAction에 대한 그들 자신의 호출을 가지고) 움직이기로했다.

  • 3

    당신은 이동을 원하고 당신이 사용할 수있는, 병렬 실행하기위한 조치를 애니메이션하는 경우 :

    옵션 1 : 사용 CCSpawn을 대신 CCSequence의. CCSequence는 완료 후에 함수를 호출하기 때문에 필요합니다.

    id action = [CCSpawn actions: 
               [CCMoveTo actionWithDuration:moveDuration position:touchLocation], 
               [CCAnimate actionWithAnimation:self.walkingAnim], 
               nil]; 
    
    id seq = [CCSequence actions: 
               action, 
               [CCCallFunc actionWithTarget:self selector:@selector(objectMoveEnded)], 
               nil]; 
    
    [self runAction:seq]; 
    

    옵션 2 : 그냥 작업을 여러 번 추가하고, 병렬로 실행됩니다. func-call 때문에 CCSequence가 다시 필요합니다 :

    id action = [CCSequence actions: 
               [CCMoveTo actionWithDuration:moveDuration position:touchLocation], 
               [CCCallFunc actionWithTarget:self selector:@selector(objectMoveEnded)], 
               nil]; 
    [self runAction:action]; 
    [self runAction:[CCAnimate actionWithAnimation:self.walkingAnim]]; 
    
    관련 문제