2017-10-21 19:09:31 +08:00
|
|
|
|
#include "..\etransitions.h"
|
|
|
|
|
|
#include "..\eactions.h"
|
2017-10-26 17:17:30 +08:00
|
|
|
|
#include "..\emanagers.h"
|
2017-10-21 19:09:31 +08:00
|
|
|
|
|
|
|
|
|
|
e2d::ETransitionScaleEmerge::ETransitionScaleEmerge(float duration, SCALE_EMERGE_MODE mode)
|
|
|
|
|
|
: m_fDuration(duration)
|
|
|
|
|
|
, m_Mode(mode)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void e2d::ETransitionScaleEmerge::_setTarget(EScene * prev, EScene * next, bool & transitional)
|
|
|
|
|
|
{
|
|
|
|
|
|
float prevScaleTo;
|
|
|
|
|
|
float nextScaleStart;
|
|
|
|
|
|
if (m_Mode == SCALE_EMERGE_MODE::ENTER)
|
|
|
|
|
|
{
|
|
|
|
|
|
prevScaleTo = 1.2f;
|
|
|
|
|
|
nextScaleStart = 0.8f;
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
prevScaleTo = 0.8f;
|
|
|
|
|
|
nextScaleStart = 1.2f;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
next->getRoot()->setScale(nextScaleStart);
|
|
|
|
|
|
next->getRoot()->setOpacity(0);
|
|
|
|
|
|
|
|
|
|
|
|
// <20><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
auto prevActionFadeOut = new EActionFadeOut(m_fDuration);
|
|
|
|
|
|
auto prevActionScaleTo = new EActionScaleTo(m_fDuration, prevScaleTo);
|
|
|
|
|
|
auto action1 = new EActionTwoAtSameTime(
|
|
|
|
|
|
prevActionFadeOut,
|
|
|
|
|
|
prevActionScaleTo);
|
|
|
|
|
|
if (prev)
|
|
|
|
|
|
{
|
|
|
|
|
|
prevActionFadeOut->setTarget(prev->getRoot());
|
|
|
|
|
|
prevActionScaleTo->setTarget(prev->getRoot());
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// <20>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
auto nextActionFadeOut = new EActionFadeIn(m_fDuration);
|
|
|
|
|
|
auto nextActionScaleTo = new EActionScaleTo(m_fDuration, 1);
|
|
|
|
|
|
auto action2 = new EActionTwoAtSameTime(
|
|
|
|
|
|
nextActionFadeOut,
|
|
|
|
|
|
nextActionScaleTo);
|
|
|
|
|
|
|
|
|
|
|
|
nextActionFadeOut->setTarget(next->getRoot());
|
|
|
|
|
|
nextActionScaleTo->setTarget(next->getRoot());
|
|
|
|
|
|
|
|
|
|
|
|
// <20><>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
auto action3 = new EActionCallback([&, prev, next] {
|
|
|
|
|
|
transitional = false;
|
|
|
|
|
|
// <20><>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD>״̬
|
|
|
|
|
|
if (prev)
|
|
|
|
|
|
{
|
|
|
|
|
|
prev->getRoot()->setScale(1);
|
|
|
|
|
|
prev->getRoot()->setOpacity(1);
|
|
|
|
|
|
}
|
|
|
|
|
|
next->getRoot()->setScale(1);
|
|
|
|
|
|
next->getRoot()->setOpacity(1);
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
EActionManager::addAction(new EActionSequence(2, new EActionTwoAtSameTime(action1, action2), action3));
|
|
|
|
|
|
}
|