2017년 1월 10일 화요일

Cocos2d-x Adjust the speed of Action & Slow motion effect

Action에 Speed를 두어 속도를 조절 할 수 있다.
            m_magic0Vector.clear();
            m_magic0Vector = this->getActionManager()->pauseAllRunningActions(); // pause 가능

            for (Node* node : m_magic0Vector)
            {
                  Speed* action = (Speed*)node->getActionByTag(MONSTER_MOVE_ACTION);
                  if (action)
                  {
                        action->setSpeed(2);
                  }
            }

            this->getActionManager()->resumeTargets(m_magic0Vector); // resume

위의 speed set 을 사용하기 위해서는 Speed*로 생성을 해야 한다.
            auto action = MoveTo::create((pos.x - castle_x) / pixelPerSec, Point(castle_x, m_yPos[i]));

            Speed* sAction = Speed::create(action, 1);
            sAction->setTag(MONSTER_MOVE_ACTION);

            sprEnemy->runAction(sAction);


전체적인 속도를 변경하고 싶으면 스케쥴러의 time scale을 조절한다.
            this->getScheduler()->setTimeScale(2);

손쉽게 Slow motion 같은 기능을 구현 할 수 있다.

댓글 없음:

댓글 쓰기