cocos2dx 여러 정령이runaction() 방법을 사용하여 조합 동작을 실행합니다. 마지막 정령만 유효합니다.

  • 문제 코드는 다음과 같다
  •     // MoveTo RotateTo       FiniteTimeAction  
        FiniteTimeAction* MVto =(FiniteTimeAction*)(MoveTo::create(2.0,Vec2(150,150)));
        FiniteTimeAction* ROto =(FiniteTimeAction*)(RotateTo::create(2.0,80));
        //       runAction           
        sprite1->runAction(Spawn::create(MVto,ROto,NULL));
        sprite2->runAction(Spawn::create(MVto,ROto,NULL));

    실행 후 sprite2만 동작을 실행했습니다. sprite1과sprite2를 줄로 바꾸면 sprite1만 실행됩니다. 귀결은 마지막 줄만 실행하는 요정입니다.
  • 문제의 해결 코드는 다음과 같다
    // MoveTo RotateTo       FiniteTimeAction  
    FiniteTimeAction* MVto1 =(FiniteTimeAction*)(MoveTo::create(2.0,Vec2(150,150)));
    FiniteTimeAction* ROto1 =(FiniteTimeAction*)(RotateTo::create(2.0,80));
    
    FiniteTimeAction* MVto2 =(FiniteTimeAction*)(MoveTo::create(2.0,Vec2(150,150)));
    FiniteTimeAction* ROto2 =(FiniteTimeAction*)(RotateTo::create(2.0,80));
    
    //       runAction           
    sprite1->runAction(Spawn::create(MVto1,ROto1,NULL));
    sprite2->runAction(Spawn::create(MVto2,ROto2,NULL));
    원인: 하나의 조합 애니메이션은 하나의 정령에 귀속되기 때문에 복제 애니메이션으로 각 정령에게 애니메이션을 귀속시키면 여러 정령이 함께 운동할 수 있다.
  • 좋은 웹페이지 즐겨찾기