void SpriteRepeater::createActionManager() { // Create a new scheduler, and link it to the main scheduler schedRepeatMove = new Scheduler(); Scheduler* defaultScheduler = Director::getInstance()->getScheduler(); defaultScheduler->scheduleUpdateForTarget(schedRepeatMove, 0, false); // Create anew AcitonManager, and link it to the new scheduler ActionManager* actionManager = new ActionManager(); schedRepeatMove->scheduleUpdateForTarget(actionManager, 0, false); setActionManager(actionManager); }
void TwoSchedulers::onEnter() { SchedulerTestLayer::onEnter(); auto s = Director::getInstance()->getWinSize(); // rotate and jump auto jump1 = JumpBy::create(4, Vec2(0,0), 100, 4); auto jump2 = jump1->reverse(); auto seq = Sequence::create(jump2, jump1, nullptr); auto action = RepeatForever::create(seq); // // Center // auto grossini = Sprite::create("Images/grossini.png"); addChild(grossini); grossini->setPosition(Vec2(s.width/2,100)); grossini->runAction(action->clone()); auto defaultScheduler = Director::getInstance()->getScheduler(); // // Left: // // Create a new scheduler, and link it to the main scheduler sched1 = new (std::nothrow) Scheduler(); defaultScheduler->scheduleUpdate(sched1, 0, false); // Create a new ActionManager, and link it to the new scheudler actionManager1 = new (std::nothrow) ActionManager(); sched1->scheduleUpdate(actionManager1, 0, false); for( unsigned int i=0; i < 10; i++ ) { auto sprite = Sprite::create("Images/grossinis_sister1.png"); // IMPORTANT: Set the actionManager running any action sprite->setActionManager(actionManager1); addChild(sprite); sprite->setPosition(Vec2(30+15*i,100)); sprite->runAction(action->clone()); } // // Right: // // Create a new scheduler, and link it to the main scheduler sched2 = new (std::nothrow) Scheduler();; defaultScheduler->scheduleUpdate(sched2, 0, false); // Create a new ActionManager, and link it to the new scheudler actionManager2 = new (std::nothrow) ActionManager(); sched2->scheduleUpdate(actionManager2, 0, false); for( unsigned int i=0; i < 10; i++ ) { auto sprite = Sprite::create("Images/grossinis_sister2.png"); // IMPORTANT: Set the actionManager running any action sprite->setActionManager(actionManager2); addChild(sprite); sprite->setPosition(Vec2(s.width-30-15*i,100)); sprite->runAction(action->clone()); } sliderCtl1 = sliderCtl(); addChild(sliderCtl1); sliderCtl1->retain(); sliderCtl1->setPosition(Vec2(s.width / 4.0f, VisibleRect::top().y - 20)); sliderCtl2 = sliderCtl(); addChild(sliderCtl2); sliderCtl2->retain(); sliderCtl2->setPosition(Vec2(s.width / 4.0f*3.0f, VisibleRect::top().y-20)); }