2012-08-29 3 views
0

cocos2dx에서 애니메이션이 작동하는 방식을 이해하려고합니다 (IPad 대상의 OSX에서 개발 중입니다).Cocos2dx animation (비추천 메소드 사용 안함)

나는 objective-c에서 C++까지 조사하기 위해이 tutorial을 추적했습니다. 곰이 제대로 아니라 애니메이션 렌더링

CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("oras.plist"); 

CCSpriteBatchNode* spriteBatchNode = CCSpriteBatchNode::create("oras.png", 8); 
this->addChild(spriteBatchNode); 

CCAnimation *bearWalkingAnimation = CCAnimation::create(); 

for (int i = 0 ; i < 8 ; ++i) 
{ 

    std::stringstream ss; 
    ss << "bear" << i + 1 << ".png"; 

    std::string name = ss.str(); 
    CCSpriteFrame* sprite = CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName(name.c_str()); 
    bearWalkingAnimation->addSpriteFrame(sprite); 


} 

CCSpriteFrame *startSpriteFrame = static_cast<CCSpriteFrame *> (bearWalkingAnimation->getFrames()->objectAtIndex(0)); 

//deprecated 
CCSprite *startSprite = CCSprite::spriteWithSpriteFrameName("bear1.png"); 
startSprite->setPosition(ccp (size.width/2 , size.height/2)); 

CCAnimate *bearAnimate = CCAnimate::create(bearWalkingAnimation); 

CCRepeatForever * animAction = CCRepeatForever::create(bearAnimate); 
startSprite->runAction(animAction); 

this->addChild(startSprite); 

:

여기 내 코드입니다. 나는이 개 질문이 :

  • 먼저하고 가장 중요한 : 나는 잘못하고 왜하고 무엇을? 애니메이션 작업을 위해 코드를 수정하려면 어떻게해야합니까?
  • 두 번째 질문 : spriteWithSpriteFrameName입니다.입니다. 대신 어떤 방법을 사용해야합니까? 먼저

답변

2

:

난 당신이 CCAnimation에 대한 지연을 설정하는 것을 잊지 생각합니다. 나는 2.0에 익숙하지 않지만 Delay를 설정하는 방법이 있어야한다고 생각한다.

CCSprite::createWithSpriteFrameName(); 
: 또는 당신은

CCAnimation::create(array,delay); 

두 번째 방법을 다음 먼저 SpriteFrames의 배열을 만들 사용할 수 있습니다