/* * Added by LEETAEHO 11.07.27 * loadPage를 VVPageFactory 없이 가능하도록 추가한 함수 */ bool VVBookScene::loadPage(VVPageBase* page, VVBookSceneTransitionType type) { if (isActionOngoing) { return false; } else { if (!curPage) { curPage = page; this->pageWillAppear(curPage); addChild(curPage, kTag_PageLayer, kTag_PageLayer); curPage->setBookDelegate(this); // 현재페이지 클래스에서 bookScene에 접근가능하도록 curPage->onPageStart(); } else { isActionOngoing = true; nextPage = page; this->pageWillAppear(nextPage); addChild(nextPage, kTag_PageBelow); if (type == VVBookSceneTransPushToLeft) { CCScaleTo *zoomOut = CCScaleTo::actionWithDuration(0.35, 0.2); CCScaleTo *zoomIn = CCScaleTo::actionWithDuration(0.35,1); CCFiniteTimeAction *action = transActionArray->getObjectAtIndex(type); nextPage->setScale(0.5); nextPage->setPosition(ccp(winSize.width,0)); nextPage->runAction( CCSpawn::actions(zoomIn,action->copy(),NULL) ); curPage->runAction(CCSequence::actions(CCSpawn::actions(zoomOut,action,NULL),CCCallFunc::actionWithTarget(this, callfunc_selector(VVBookScene::pageAniDone)),NULL)); } else if (type == VVBookSceneTransPushToRight ) { CCScaleTo *zoomOut = CCScaleTo::actionWithDuration(0.35, 0.2); CCScaleTo *zoomIn = CCScaleTo::actionWithDuration(0.35,1); CCFiniteTimeAction *action = transActionArray->getObjectAtIndex(type); nextPage->setScale(0.5); nextPage->setPosition(ccp(-winSize.width,0)); nextPage->runAction( CCSpawn::actions(zoomIn,action->copy(),NULL) ); curPage->setAnchorPoint(ccp(1,0)); curPage->runAction( CCSequence::actions(CCSpawn::actions(zoomOut,action,NULL),CCCallFunc::actionWithTarget(this, callfunc_selector(VVBookScene::pageAniDone)),NULL)); } else if (type == VVBookSceneTransFadeInOut) { nextPage->runAction( CCEaseExponentialOut::actionWithAction( CCActionTween::actionWithDuration(0.5,"opacity",0,255) ) ); curPage->runAction( CCSequence::actions(CCEaseExponentialOut::actionWithAction( CCActionTween::actionWithDuration(0.5,"opacity",255,0) ),CCCallFunc::actionWithTarget(this, callfunc_selector(VVBookScene::pageAniDone)),NULL)); } else { curPage->runAction(CCSequence::actions(transActionArray->getObjectAtIndex(type),CCCallFunc::actionWithTarget(this, callfunc_selector(VVBookScene::pageAniDone)),NULL)); } } } return true; }
//------------------------------------------------------------------ // // SchedulerTest // //------------------------------------------------------------------ void SchedulerTest::onEnter() { EaseSpriteDemo::onEnter(); // rotate and jump CCActionInterval* jump1 = CCJumpBy::actionWithDuration(4, CCPointMake(-400,0), 100, 4); CCActionInterval* jump2 = jump1->reverse(); CCActionInterval* rot1 = CCRotateBy::actionWithDuration(4, 360*2); CCActionInterval* rot2 = rot1->reverse(); CCFiniteTimeAction* seq3_1 = CCSequence::actions(jump2, jump1, NULL); CCFiniteTimeAction* seq3_2 = CCSequence::actions( rot1, rot2, NULL); CCFiniteTimeAction* spawn = CCSpawn::actions(seq3_1, seq3_2, NULL); CCFiniteTimeAction* action = CCRepeatForever::actionWithAction((CCActionInterval*)spawn); CCRepeatForever* action2 = (CCRepeatForever*)(action->copy()->autorelease()); CCRepeatForever* action3 = (CCRepeatForever*)(action->copy()->autorelease()); m_grossini->runAction( CCSpeed::actionWithAction((CCActionInterval*)action, 0.5f) ); m_tamara->runAction( CCSpeed::actionWithAction((CCActionInterval*)action2, 1.5f) ); m_kathia->runAction( CCSpeed::actionWithAction((CCActionInterval*)action3, 1.0f) ); CCParticleSystem* emitter = CCParticleFireworks::node(); emitter->setTexture(CCTextureCache::sharedTextureCache()->addImage("Images/fire.png")); addChild(emitter); //sliderCtl = [self sliderCtl]; //[[[[Director sharedDirector] openGLView] window] addSubview: sliderCtl]; }
void AvatarLayer::packAvatar() { m_isShowAll = false; CCFiniteTimeAction* callback = CCCallFunc::create(this, callfunc_selector(AvatarLayer::showSelectAvatar)); CCFiniteTimeAction* scale = CCScaleTo::create(0.2, 1); CCFiniteTimeAction* move = CCMoveTo::create(0.2, m_avatarCenter); m_avatarList[0]->runAction(CCSequence::create(CCSpawn::create(scale, move, NULL), callback, NULL)); for (int i = 1; i < MAX_AVATAR_COUNT; i++) { m_avatarList[i]->runAction(CCSpawn::create((CCFiniteTimeAction*)scale->copy(), move->copy(), NULL)); } }
//------------------------------------------------------------------ // // ActionRotateJerk // //------------------------------------------------------------------ void ActionRotateJerk::onEnter() { ActionsDemo::onEnter(); centerSprites(2); CCFiniteTimeAction* seq = CCSequence::actions( CCRotateTo::actionWithDuration(0.5f, -20), CCRotateTo::actionWithDuration(0.5f, 20), NULL); CCActionInterval* rep1 = CCRepeat::actionWithAction(seq, 10); CCAction* rep2 = CCRepeatForever::actionWithAction( (CCActionInterval*)(seq->copy()->autorelease()) ); m_tamara->runAction(rep1); m_kathia->runAction(rep2); }