2012-10-15 1 views
1

내 게임을위한 애니메이션을 만들기 위해 노력하고 있습니다. 둥지가 아래로 오르락 내리락하며 아래를 향하고 똑바로 다시 보입니다.cocos2d-x : 이동 중에 CCSprite가 최종 위치를 변경합니다.

두 개의 동작 시퀀스를 만들었습니다. 하나는 동작 용으로, 다른 하나는 회전 용으로 사용하고 CCSpawn에 함께 넣습니다. 움직이는 액션 만 실행하면 제대로 작동하지만 액션이 함께 실행되면 끝 부분에서 스프라이트가 원래 위치로 돌아갑니다.

나는 무슨 일이 일어나고 있는지 전혀 모른다. 너희들도 도와 줄 수 있니?

CCLayer * gameLayer = CCLayer::create(); 

Ant* ant = Ant::create(); // Ant is a CCSprite 

CCPoint nestp = ccp(45, 172); 

ant->setPosition(nestp); 

gameLayer->addChild(ant); 

addChild(gameLayer); 

    // ant walking animation 
CCAnimate * antWalk = CCAnimate::create(_antWalk); 
ant->runAction(CCRepeatForever::create(antWalk)); 

CCPoint p1 = ccp(55, 165), p2 = ccp(75,160), p3 = ccp(90,110), p4 = ccp(105, 50); 

CCSequence *moveOut = (CCSequence *)CCSequence::create(CCMoveTo::create(0.3, p1), CCMoveTo::create(0.3, p2), CCMoveTo::create(0.7, p3), CCMoveTo::create(0.7, p4), NULL); 

CCSequence *rotateOut = (CCSequence *) CCSequence::create(CCRotateTo::create(0.5, 50), CCDelayTime::create(1), CCRotateTo::create(0.5, 0)); 

CCSpawn *leaveNest = (CCSpawn *)CCSpawn::create(moveOut, rotateOut, NULL); 

ant->runAction(leaveNest); 

답변

1

내 자신의 질문을 검토 할 때 회전 시퀀스의 끝에 NULL을 추가하는 것을 잊어 버렸습니다. 그것은 다음과 같이해야합니다 : 오류가 없는지으로 나는이 문제를 기대하지 않을 것이다

CCSequence *rotateOut = (CCSequence *) CCSequence::create(CCRotateTo::create(0.5, 50), CCDelayTime::create(1), CCRotateTo::create(0.5, 0), NULL); 

, 내가 알아 너무 오래 걸려서 이유입니다하지만 지금은 그것을 잘 작동합니다! 같은 문제에서 다른 사람이 도움이되기를 바랍니다.