fixed bugs about actions.
This commit is contained in:
parent
98963f082e
commit
7d36ea26fd
|
|
@ -1,4 +1,5 @@
|
||||||
#include "..\eactions.h"
|
#include "..\eactions.h"
|
||||||
|
#include "..\emanagers.h"
|
||||||
|
|
||||||
e2d::EAction::EAction()
|
e2d::EAction::EAction()
|
||||||
: m_bRunning(false)
|
: m_bRunning(false)
|
||||||
|
|
@ -12,6 +13,7 @@ e2d::EAction::EAction()
|
||||||
|
|
||||||
e2d::EAction::~EAction()
|
e2d::EAction::~EAction()
|
||||||
{
|
{
|
||||||
|
EActionManager::__destroyAction(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool e2d::EAction::isRunning()
|
bool e2d::EAction::isRunning()
|
||||||
|
|
@ -24,9 +26,10 @@ bool e2d::EAction::_isEnding()
|
||||||
return m_bEnding;
|
return m_bEnding;
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::EAction::start()
|
void e2d::EAction::startWith(ENode* pTarget)
|
||||||
{
|
{
|
||||||
this->resume();
|
m_bRunning = true;
|
||||||
|
m_pTarget = pTarget;
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::EAction::resume()
|
void e2d::EAction::resume()
|
||||||
|
|
@ -45,11 +48,6 @@ void e2d::EAction::stop()
|
||||||
m_bEnding = true;
|
m_bEnding = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::EAction::_setTarget(ENode * node)
|
|
||||||
{
|
|
||||||
m_pTarget = node;
|
|
||||||
}
|
|
||||||
|
|
||||||
e2d::EAction * e2d::EAction::reverse() const
|
e2d::EAction * e2d::EAction::reverse() const
|
||||||
{
|
{
|
||||||
ASSERT(false, "EAction cannot be reversed!");
|
ASSERT(false, "EAction cannot be reversed!");
|
||||||
|
|
@ -76,7 +74,7 @@ void e2d::EAction::_update()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::EAction::_reset()
|
void e2d::EAction::reset()
|
||||||
{
|
{
|
||||||
m_bInit = false;
|
m_bInit = false;
|
||||||
m_bEnding = false;
|
m_bEnding = false;
|
||||||
|
|
|
||||||
|
|
@ -20,8 +20,3 @@ void e2d::EActionCallback::_update()
|
||||||
m_Callback();
|
m_Callback();
|
||||||
this->stop();
|
this->stop();
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::EActionCallback::_reset()
|
|
||||||
{
|
|
||||||
EAction::_reset();
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -24,8 +24,3 @@ void e2d::EActionDelay::_update()
|
||||||
this->stop();
|
this->stop();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::EActionDelay::_reset()
|
|
||||||
{
|
|
||||||
EAction::_reset();
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -29,8 +29,3 @@ void e2d::EActionGradual::_update()
|
||||||
this->stop();
|
this->stop();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::EActionGradual::_reset()
|
|
||||||
{
|
|
||||||
EAction::_reset();
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ e2d::EActionLoop * e2d::EActionLoop::clone() const
|
||||||
void e2d::EActionLoop::_init()
|
void e2d::EActionLoop::_init()
|
||||||
{
|
{
|
||||||
EAction::_init();
|
EAction::_init();
|
||||||
m_pAction->_setTarget(m_pTarget);
|
m_pAction->m_pTarget = m_pTarget;
|
||||||
m_pAction->_init();
|
m_pAction->_init();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -42,16 +42,16 @@ void e2d::EActionLoop::_update()
|
||||||
{
|
{
|
||||||
m_nTimes++;
|
m_nTimes++;
|
||||||
|
|
||||||
EAction::_reset();
|
EAction::reset();
|
||||||
m_pAction->_reset();
|
m_pAction->reset();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::EActionLoop::_reset()
|
void e2d::EActionLoop::reset()
|
||||||
{
|
{
|
||||||
EAction::_reset();
|
EAction::reset();
|
||||||
|
|
||||||
m_pAction->_reset();
|
m_pAction->reset();
|
||||||
m_nTimes = 0;
|
m_nTimes = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -33,11 +33,6 @@ void e2d::EActionMoveBy::_update()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::EActionMoveBy::_reset()
|
|
||||||
{
|
|
||||||
EActionGradual::_reset();
|
|
||||||
}
|
|
||||||
|
|
||||||
e2d::EActionMoveBy * e2d::EActionMoveBy::clone() const
|
e2d::EActionMoveBy * e2d::EActionMoveBy::clone() const
|
||||||
{
|
{
|
||||||
return new EActionMoveBy(m_fDuration, m_MoveVec);
|
return new EActionMoveBy(m_fDuration, m_MoveVec);
|
||||||
|
|
|
||||||
|
|
@ -16,8 +16,3 @@ void e2d::EActionMoveTo::_init()
|
||||||
EActionMoveBy::_init();
|
EActionMoveBy::_init();
|
||||||
m_MoveVec = m_EndPos - m_BeginPos;
|
m_MoveVec = m_EndPos - m_BeginPos;
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::EActionMoveTo::_reset()
|
|
||||||
{
|
|
||||||
EActionMoveBy::_reset();
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -29,11 +29,6 @@ void e2d::EActionOpacityBy::_update()
|
||||||
m_pTarget->setOpacity(m_nBeginVal + m_nVariation * m_fRateOfProgress);
|
m_pTarget->setOpacity(m_nBeginVal + m_nVariation * m_fRateOfProgress);
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::EActionOpacityBy::_reset()
|
|
||||||
{
|
|
||||||
EActionGradual::_reset();
|
|
||||||
}
|
|
||||||
|
|
||||||
e2d::EActionOpacityBy * e2d::EActionOpacityBy::clone() const
|
e2d::EActionOpacityBy * e2d::EActionOpacityBy::clone() const
|
||||||
{
|
{
|
||||||
return new EActionOpacityBy(m_fDuration, m_nVariation);
|
return new EActionOpacityBy(m_fDuration, m_nVariation);
|
||||||
|
|
|
||||||
|
|
@ -17,8 +17,3 @@ void e2d::EActionOpacityTo::_init()
|
||||||
EActionOpacityBy::_init();
|
EActionOpacityBy::_init();
|
||||||
m_nVariation = m_nEndVal - m_nBeginVal;
|
m_nVariation = m_nEndVal - m_nBeginVal;
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::EActionOpacityTo::_reset()
|
|
||||||
{
|
|
||||||
EActionOpacityBy::_reset();
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -30,11 +30,6 @@ void e2d::EActionRotateBy::_update()
|
||||||
m_pTarget->setRotation(m_nBeginVal + m_nVariation * m_fRateOfProgress);
|
m_pTarget->setRotation(m_nBeginVal + m_nVariation * m_fRateOfProgress);
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::EActionRotateBy::_reset()
|
|
||||||
{
|
|
||||||
EActionGradual::_reset();
|
|
||||||
}
|
|
||||||
|
|
||||||
e2d::EActionRotateBy * e2d::EActionRotateBy::clone() const
|
e2d::EActionRotateBy * e2d::EActionRotateBy::clone() const
|
||||||
{
|
{
|
||||||
return new EActionRotateBy(m_fDuration, m_nVariation);
|
return new EActionRotateBy(m_fDuration, m_nVariation);
|
||||||
|
|
|
||||||
|
|
@ -17,8 +17,3 @@ void e2d::EActionRotateTo::_init()
|
||||||
EActionRotateBy::_init();
|
EActionRotateBy::_init();
|
||||||
m_nVariation = m_nEndVal - m_nBeginVal;
|
m_nVariation = m_nEndVal - m_nBeginVal;
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::EActionRotateTo::_reset()
|
|
||||||
{
|
|
||||||
EActionRotateBy::_reset();
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -41,11 +41,6 @@ void e2d::EActionScaleBy::_update()
|
||||||
m_nBeginScaleX + m_nVariationX * m_fRateOfProgress);
|
m_nBeginScaleX + m_nVariationX * m_fRateOfProgress);
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::EActionScaleBy::_reset()
|
|
||||||
{
|
|
||||||
EActionGradual::_reset();
|
|
||||||
}
|
|
||||||
|
|
||||||
e2d::EActionScaleBy * e2d::EActionScaleBy::clone() const
|
e2d::EActionScaleBy * e2d::EActionScaleBy::clone() const
|
||||||
{
|
{
|
||||||
return new EActionScaleBy(m_fDuration, m_nVariationX, m_nVariationY);
|
return new EActionScaleBy(m_fDuration, m_nVariationX, m_nVariationY);
|
||||||
|
|
|
||||||
|
|
@ -25,8 +25,3 @@ void e2d::EActionScaleTo::_init()
|
||||||
m_nVariationX = m_nEndScaleX - m_nBeginScaleX;
|
m_nVariationX = m_nEndScaleX - m_nBeginScaleX;
|
||||||
m_nVariationY = m_nEndScaleY - m_nBeginScaleY;
|
m_nVariationY = m_nEndScaleY - m_nBeginScaleY;
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::EActionScaleTo::_reset()
|
|
||||||
{
|
|
||||||
EActionScaleBy::_reset();
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@ void e2d::EActionSequence::_init()
|
||||||
{
|
{
|
||||||
for (auto action : m_vActions)
|
for (auto action : m_vActions)
|
||||||
{
|
{
|
||||||
action->_setTarget(m_pTarget);
|
action->m_pTarget = m_pTarget;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 初始化第一个动作
|
// 初始化第一个动作
|
||||||
|
|
@ -63,12 +63,12 @@ void e2d::EActionSequence::_update()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::EActionSequence::_reset()
|
void e2d::EActionSequence::reset()
|
||||||
{
|
{
|
||||||
EAction::_reset();
|
EAction::reset();
|
||||||
for (auto action : m_vActions)
|
for (auto action : m_vActions)
|
||||||
{
|
{
|
||||||
action->_reset();
|
action->reset();
|
||||||
}
|
}
|
||||||
m_nActionIndex = 0;
|
m_nActionIndex = 0;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -35,8 +35,8 @@ e2d::EActionTwo * e2d::EActionTwo::reverse(bool actionReverse) const
|
||||||
void e2d::EActionTwo::_init()
|
void e2d::EActionTwo::_init()
|
||||||
{
|
{
|
||||||
EAction::_init();
|
EAction::_init();
|
||||||
m_pFirstAction->_setTarget(m_pTarget);
|
m_pFirstAction->m_pTarget = m_pTarget;
|
||||||
m_pSecondAction->_setTarget(m_pTarget);
|
m_pSecondAction->m_pTarget = m_pTarget;
|
||||||
|
|
||||||
m_pFirstAction->_init();
|
m_pFirstAction->_init();
|
||||||
}
|
}
|
||||||
|
|
@ -64,12 +64,12 @@ void e2d::EActionTwo::_update()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::EActionTwo::_reset()
|
void e2d::EActionTwo::reset()
|
||||||
{
|
{
|
||||||
EAction::_reset();
|
EAction::reset();
|
||||||
|
|
||||||
m_pFirstAction->_reset();
|
m_pFirstAction->reset();
|
||||||
m_pSecondAction->_reset();
|
m_pSecondAction->reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::EActionTwo::_resetTime()
|
void e2d::EActionTwo::_resetTime()
|
||||||
|
|
|
||||||
|
|
@ -35,8 +35,8 @@ e2d::EActionTwoAtSameTime * e2d::EActionTwoAtSameTime::reverse(bool actionRevers
|
||||||
void e2d::EActionTwoAtSameTime::_init()
|
void e2d::EActionTwoAtSameTime::_init()
|
||||||
{
|
{
|
||||||
EAction::_init();
|
EAction::_init();
|
||||||
m_pFirstAction->_setTarget(m_pTarget);
|
m_pFirstAction->m_pTarget = m_pTarget;
|
||||||
m_pSecondAction->_setTarget(m_pTarget);
|
m_pSecondAction->m_pTarget = m_pTarget;
|
||||||
|
|
||||||
m_pFirstAction->_init();
|
m_pFirstAction->_init();
|
||||||
m_pSecondAction->_init();
|
m_pSecondAction->_init();
|
||||||
|
|
@ -63,12 +63,12 @@ void e2d::EActionTwoAtSameTime::_update()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::EActionTwoAtSameTime::_reset()
|
void e2d::EActionTwoAtSameTime::reset()
|
||||||
{
|
{
|
||||||
EAction::_reset();
|
EAction::reset();
|
||||||
|
|
||||||
m_pFirstAction->_reset();
|
m_pFirstAction->reset();
|
||||||
m_pSecondAction->_reset();
|
m_pSecondAction->reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::EActionTwoAtSameTime::_resetTime()
|
void e2d::EActionTwoAtSameTime::_resetTime()
|
||||||
|
|
|
||||||
|
|
@ -2,14 +2,12 @@
|
||||||
|
|
||||||
e2d::EAnimation::EAnimation()
|
e2d::EAnimation::EAnimation()
|
||||||
: m_nFrameIndex(0)
|
: m_nFrameIndex(0)
|
||||||
, m_pTarget(nullptr)
|
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
e2d::EAnimation::EAnimation(float invertal)
|
e2d::EAnimation::EAnimation(float invertal)
|
||||||
: m_nFrameIndex(0)
|
: m_nFrameIndex(0)
|
||||||
, m_fInterval(invertal)
|
, m_fInterval(invertal)
|
||||||
, m_pTarget(nullptr)
|
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -47,7 +45,7 @@ void e2d::EAnimation::_update()
|
||||||
// 重新记录时间
|
// 重新记录时间
|
||||||
m_fLast += m_fInterval;
|
m_fLast += m_fInterval;
|
||||||
// 加载关键帧
|
// 加载关键帧
|
||||||
m_pTarget->loadFrom(m_vFrames[m_nFrameIndex]);
|
static_cast<ESprite*>(m_pTarget)->loadFrom(m_vFrames[m_nFrameIndex]);
|
||||||
m_nFrameIndex++;
|
m_nFrameIndex++;
|
||||||
// 判断动作是否结束
|
// 判断动作是否结束
|
||||||
if (m_nFrameIndex == m_vFrames.size())
|
if (m_nFrameIndex == m_vFrames.size())
|
||||||
|
|
@ -58,17 +56,12 @@ void e2d::EAnimation::_update()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::EAnimation::_reset()
|
void e2d::EAnimation::reset()
|
||||||
{
|
{
|
||||||
EAction::_reset();
|
EAction::reset();
|
||||||
m_nFrameIndex = 0;
|
m_nFrameIndex = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::EAnimation::_setTarget(ENode * node)
|
|
||||||
{
|
|
||||||
m_pTarget = static_cast<ESprite*>(node);
|
|
||||||
}
|
|
||||||
|
|
||||||
void e2d::EAnimation::addKeyframe(EImage * frame)
|
void e2d::EAnimation::addKeyframe(EImage * frame)
|
||||||
{
|
{
|
||||||
if (frame)
|
if (frame)
|
||||||
|
|
|
||||||
|
|
@ -4,15 +4,15 @@
|
||||||
static std::vector<e2d::EAction*> s_vActions;
|
static std::vector<e2d::EAction*> s_vActions;
|
||||||
|
|
||||||
|
|
||||||
void e2d::EActionManager::addAction(EAction * action)
|
void e2d::EActionManager::addAction(EAction * pAction, ENode * pTargetNode)
|
||||||
{
|
{
|
||||||
WARN_IF(action == nullptr, "EAction NULL pointer exception!");
|
WARN_IF(pAction == nullptr, "EAction NULL pointer exception!");
|
||||||
|
|
||||||
if (action)
|
if (pAction)
|
||||||
{
|
{
|
||||||
action->start();
|
pAction->startWith(pTargetNode);
|
||||||
action->retain();
|
pAction->retain();
|
||||||
s_vActions.push_back(action);
|
s_vActions.push_back(pAction);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -24,7 +24,7 @@ void e2d::EActionManager::resumeAllActionsBindedWith(ENode * pTargetNode)
|
||||||
{
|
{
|
||||||
if (action->getTarget() == pTargetNode)
|
if (action->getTarget() == pTargetNode)
|
||||||
{
|
{
|
||||||
action->start();
|
action->resume();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (auto child : pTargetNode->getChildren())
|
for (auto child : pTargetNode->getChildren())
|
||||||
|
|
@ -90,6 +90,18 @@ void e2d::EActionManager::__clearAllActionsBindedWith(ENode * pTargetNode)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void e2d::EActionManager::__destroyAction(EAction * pAction)
|
||||||
|
{
|
||||||
|
for (size_t i = 0; i < s_vActions.size(); i++)
|
||||||
|
{
|
||||||
|
if (pAction == s_vActions[i])
|
||||||
|
{
|
||||||
|
s_vActions.erase(s_vActions.begin() + i);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void e2d::EActionManager::resumeAllActions()
|
void e2d::EActionManager::resumeAllActions()
|
||||||
{
|
{
|
||||||
for (auto child : ESceneManager::getCurrentScene()->getRoot()->getChildren())
|
for (auto child : ESceneManager::getCurrentScene()->getRoot()->getChildren())
|
||||||
|
|
@ -128,18 +140,17 @@ void e2d::EActionManager::__update()
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// 循环遍历所有正在运行的动作
|
// 循环遍历所有正在运行的动作
|
||||||
for (size_t i = 0; i < s_vActions.size(); i++)
|
for (auto &action : s_vActions)
|
||||||
{
|
{
|
||||||
auto &action = s_vActions[i];
|
|
||||||
// 获取动作运行状态
|
// 获取动作运行状态
|
||||||
if (action->isRunning() ||
|
if (action->isRunning() &&
|
||||||
(action->getTarget() && action->getTarget()->getParentScene() == ESceneManager::getCurrentScene()))
|
action->getTarget() &&
|
||||||
|
action->getTarget()->getParentScene() == ESceneManager::getCurrentScene())
|
||||||
{
|
{
|
||||||
if (action->_isEnding())
|
if (action->_isEnding())
|
||||||
{
|
{
|
||||||
// 动作已经结束
|
// 动作已经结束
|
||||||
SafeRelease(&action);
|
action->release();
|
||||||
s_vActions.erase(s_vActions.begin() + i);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -720,17 +720,24 @@ void e2d::ENode::clearAllChildren()
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::ENode::runAction(EAction * action)
|
void e2d::ENode::runAction(EAction * action)
|
||||||
|
{
|
||||||
|
if (this != action->getTarget())
|
||||||
{
|
{
|
||||||
WARN_IF(
|
WARN_IF(
|
||||||
action->getTarget() != nullptr,
|
nullptr != action->getTarget(),
|
||||||
"The action is already running, The clone of the action will be created automatically!"
|
"The action has already got a target, The clone of the action will be created automatically!"
|
||||||
);
|
);
|
||||||
if (action->getTarget())
|
|
||||||
|
if (nullptr != action->getTarget())
|
||||||
{
|
{
|
||||||
action = action->clone();
|
action = action->clone();
|
||||||
}
|
}
|
||||||
action->_setTarget(this);
|
EActionManager::addAction(action, this);
|
||||||
EActionManager::addAction(action);
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
action->reset();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::ENode::resumeAction(EAction * action)
|
void e2d::ENode::resumeAction(EAction * action)
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
namespace e2d
|
namespace e2d
|
||||||
{
|
{
|
||||||
|
|
||||||
class ENode;
|
|
||||||
class EActionManager;
|
class EActionManager;
|
||||||
class EActionTwo;
|
class EActionTwo;
|
||||||
class EActionLoop;
|
class EActionLoop;
|
||||||
|
|
@ -15,7 +15,6 @@ class ETransitionFade;
|
||||||
class EAction :
|
class EAction :
|
||||||
public EObject
|
public EObject
|
||||||
{
|
{
|
||||||
friend ENode;
|
|
||||||
friend EActionManager;
|
friend EActionManager;
|
||||||
friend EActionTwo;
|
friend EActionTwo;
|
||||||
friend EActionLoop;
|
friend EActionLoop;
|
||||||
|
|
@ -30,8 +29,10 @@ public:
|
||||||
// 获取动作运行状态
|
// 获取动作运行状态
|
||||||
virtual bool isRunning();
|
virtual bool isRunning();
|
||||||
|
|
||||||
// 继续动作
|
// 开始动作
|
||||||
virtual void start();
|
virtual void startWith(
|
||||||
|
ENode* pTarget /* 执行该动作的目标 */
|
||||||
|
);
|
||||||
|
|
||||||
// 继续动作
|
// 继续动作
|
||||||
virtual void resume();
|
virtual void resume();
|
||||||
|
|
@ -48,7 +49,10 @@ public:
|
||||||
// 获取一个新的逆向动作
|
// 获取一个新的逆向动作
|
||||||
virtual EAction * reverse() const;
|
virtual EAction * reverse() const;
|
||||||
|
|
||||||
// 获取执行该动作的目标
|
// 重置动作
|
||||||
|
virtual void reset();
|
||||||
|
|
||||||
|
// 获取该动作的执行目标
|
||||||
virtual ENode * getTarget();
|
virtual ENode * getTarget();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
@ -61,17 +65,9 @@ protected:
|
||||||
// 获取动作结束状态
|
// 获取动作结束状态
|
||||||
virtual bool _isEnding();
|
virtual bool _isEnding();
|
||||||
|
|
||||||
// 重置动作
|
|
||||||
virtual void _reset();
|
|
||||||
|
|
||||||
// 重置动画时间
|
// 重置动画时间
|
||||||
virtual void _resetTime();
|
virtual void _resetTime();
|
||||||
|
|
||||||
// 设置动作执行目标
|
|
||||||
virtual void _setTarget(
|
|
||||||
ENode * node
|
|
||||||
);
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
bool m_bRunning;
|
bool m_bRunning;
|
||||||
bool m_bEnding;
|
bool m_bEnding;
|
||||||
|
|
@ -98,9 +94,6 @@ protected:
|
||||||
// 更新动画
|
// 更新动画
|
||||||
virtual void _update() override;
|
virtual void _update() override;
|
||||||
|
|
||||||
// 重置动画
|
|
||||||
virtual void _reset() override;
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
float m_fDuration;
|
float m_fDuration;
|
||||||
float m_fRateOfProgress;
|
float m_fRateOfProgress;
|
||||||
|
|
@ -130,9 +123,6 @@ protected:
|
||||||
// 执行动画
|
// 执行动画
|
||||||
virtual void _update() override;
|
virtual void _update() override;
|
||||||
|
|
||||||
// 重置动画
|
|
||||||
virtual void _reset() override;
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
EPoint m_BeginPos;
|
EPoint m_BeginPos;
|
||||||
EVector2 m_MoveVec;
|
EVector2 m_MoveVec;
|
||||||
|
|
@ -156,9 +146,6 @@ protected:
|
||||||
// 初始化动画
|
// 初始化动画
|
||||||
virtual void _init() override;
|
virtual void _init() override;
|
||||||
|
|
||||||
// 重置动画
|
|
||||||
virtual void _reset() override;
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
EPoint m_EndPos;
|
EPoint m_EndPos;
|
||||||
};
|
};
|
||||||
|
|
@ -194,9 +181,6 @@ protected:
|
||||||
// 执行动画
|
// 执行动画
|
||||||
virtual void _update() override;
|
virtual void _update() override;
|
||||||
|
|
||||||
// 重置动画
|
|
||||||
virtual void _reset() override;
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
float m_nBeginScaleX;
|
float m_nBeginScaleX;
|
||||||
float m_nBeginScaleY;
|
float m_nBeginScaleY;
|
||||||
|
|
@ -229,9 +213,6 @@ protected:
|
||||||
// 初始化动画
|
// 初始化动画
|
||||||
virtual void _init() override;
|
virtual void _init() override;
|
||||||
|
|
||||||
// 重置动画
|
|
||||||
virtual void _reset() override;
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
float m_nEndScaleX;
|
float m_nEndScaleX;
|
||||||
float m_nEndScaleY;
|
float m_nEndScaleY;
|
||||||
|
|
@ -261,9 +242,6 @@ protected:
|
||||||
// 执行动画
|
// 执行动画
|
||||||
virtual void _update() override;
|
virtual void _update() override;
|
||||||
|
|
||||||
// 重置动画
|
|
||||||
virtual void _reset() override;
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
float m_nBeginVal;
|
float m_nBeginVal;
|
||||||
float m_nVariation;
|
float m_nVariation;
|
||||||
|
|
@ -287,9 +265,6 @@ protected:
|
||||||
// 初始化动画
|
// 初始化动画
|
||||||
virtual void _init() override;
|
virtual void _init() override;
|
||||||
|
|
||||||
// 重置动画
|
|
||||||
virtual void _reset() override;
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
float m_nEndVal;
|
float m_nEndVal;
|
||||||
};
|
};
|
||||||
|
|
@ -340,9 +315,6 @@ protected:
|
||||||
// 执行动画
|
// 执行动画
|
||||||
virtual void _update() override;
|
virtual void _update() override;
|
||||||
|
|
||||||
// 重置动画
|
|
||||||
virtual void _reset() override;
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
float m_nBeginVal;
|
float m_nBeginVal;
|
||||||
float m_nVariation;
|
float m_nVariation;
|
||||||
|
|
@ -366,9 +338,6 @@ protected:
|
||||||
// 初始化动画
|
// 初始化动画
|
||||||
virtual void _init() override;
|
virtual void _init() override;
|
||||||
|
|
||||||
// 重置动画
|
|
||||||
virtual void _reset() override;
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
float m_nEndVal;
|
float m_nEndVal;
|
||||||
};
|
};
|
||||||
|
|
@ -394,6 +363,9 @@ public:
|
||||||
bool actionReverse = true /* 子动作是否执行逆动作 */
|
bool actionReverse = true /* 子动作是否执行逆动作 */
|
||||||
) const;
|
) const;
|
||||||
|
|
||||||
|
// 重置动作
|
||||||
|
virtual void reset() override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// 初始化动作
|
// 初始化动作
|
||||||
virtual void _init() override;
|
virtual void _init() override;
|
||||||
|
|
@ -401,9 +373,6 @@ protected:
|
||||||
// 执行动作
|
// 执行动作
|
||||||
virtual void _update() override;
|
virtual void _update() override;
|
||||||
|
|
||||||
// 重置动作
|
|
||||||
virtual void _reset() override;
|
|
||||||
|
|
||||||
// 重置动画时间
|
// 重置动画时间
|
||||||
virtual void _resetTime() override;
|
virtual void _resetTime() override;
|
||||||
|
|
||||||
|
|
@ -442,6 +411,9 @@ public:
|
||||||
bool actionReverse = true /* 子动作是否执行逆动作 */
|
bool actionReverse = true /* 子动作是否执行逆动作 */
|
||||||
) const;
|
) const;
|
||||||
|
|
||||||
|
// 重置动作
|
||||||
|
virtual void reset() override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// 初始化动作
|
// 初始化动作
|
||||||
virtual void _init() override;
|
virtual void _init() override;
|
||||||
|
|
@ -449,9 +421,6 @@ protected:
|
||||||
// 执行动作
|
// 执行动作
|
||||||
virtual void _update() override;
|
virtual void _update() override;
|
||||||
|
|
||||||
// 重置动作
|
|
||||||
virtual void _reset() override;
|
|
||||||
|
|
||||||
// 重置动画时间
|
// 重置动画时间
|
||||||
virtual void _resetTime() override;
|
virtual void _resetTime() override;
|
||||||
|
|
||||||
|
|
@ -480,9 +449,6 @@ protected:
|
||||||
// 执行动作
|
// 执行动作
|
||||||
virtual void _update() override;
|
virtual void _update() override;
|
||||||
|
|
||||||
// 重置动作
|
|
||||||
virtual void _reset() override;
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
float m_fDelayTime;
|
float m_fDelayTime;
|
||||||
};
|
};
|
||||||
|
|
@ -508,6 +474,9 @@ public:
|
||||||
bool actionReverse = true /* 子动作是否执行逆动作 */
|
bool actionReverse = true /* 子动作是否执行逆动作 */
|
||||||
) const;
|
) const;
|
||||||
|
|
||||||
|
// 重置动作
|
||||||
|
virtual void reset() override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// 初始化动作
|
// 初始化动作
|
||||||
virtual void _init() override;
|
virtual void _init() override;
|
||||||
|
|
@ -515,9 +484,6 @@ protected:
|
||||||
// 执行动作
|
// 执行动作
|
||||||
virtual void _update() override;
|
virtual void _update() override;
|
||||||
|
|
||||||
// 重置动作
|
|
||||||
virtual void _reset() override;
|
|
||||||
|
|
||||||
// 重置动画时间
|
// 重置动画时间
|
||||||
virtual void _resetTime() override;
|
virtual void _resetTime() override;
|
||||||
|
|
||||||
|
|
@ -542,6 +508,9 @@ public:
|
||||||
// 获取该动作的拷贝对象
|
// 获取该动作的拷贝对象
|
||||||
virtual EActionLoop * clone() const override;
|
virtual EActionLoop * clone() const override;
|
||||||
|
|
||||||
|
// 重置动作
|
||||||
|
virtual void reset() override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// 初始化动作
|
// 初始化动作
|
||||||
virtual void _init() override;
|
virtual void _init() override;
|
||||||
|
|
@ -549,9 +518,6 @@ protected:
|
||||||
// 执行动作
|
// 执行动作
|
||||||
virtual void _update() override;
|
virtual void _update() override;
|
||||||
|
|
||||||
// 重置动作
|
|
||||||
virtual void _reset() override;
|
|
||||||
|
|
||||||
// 重置动画时间
|
// 重置动画时间
|
||||||
virtual void _resetTime() override;
|
virtual void _resetTime() override;
|
||||||
|
|
||||||
|
|
@ -592,6 +558,9 @@ public:
|
||||||
// 获取该动画的逆动画
|
// 获取该动画的逆动画
|
||||||
virtual EAnimation * reverse() const override;
|
virtual EAnimation * reverse() const override;
|
||||||
|
|
||||||
|
// 重置动作
|
||||||
|
virtual void reset() override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// 初始化动作
|
// 初始化动作
|
||||||
virtual void _init() override;
|
virtual void _init() override;
|
||||||
|
|
@ -599,18 +568,9 @@ protected:
|
||||||
// 执行动作
|
// 执行动作
|
||||||
virtual void _update() override;
|
virtual void _update() override;
|
||||||
|
|
||||||
// 重置动作
|
|
||||||
virtual void _reset() override;
|
|
||||||
|
|
||||||
// 设置动作执行目标
|
|
||||||
virtual void _setTarget(
|
|
||||||
ENode * node
|
|
||||||
) override;
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
float m_fInterval;
|
float m_fInterval;
|
||||||
UINT m_nFrameIndex;
|
UINT m_nFrameIndex;
|
||||||
ESprite* m_pTarget;
|
|
||||||
std::vector<EImage*> m_vFrames;
|
std::vector<EImage*> m_vFrames;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -634,9 +594,6 @@ protected:
|
||||||
// 执行动作
|
// 执行动作
|
||||||
virtual void _update() override;
|
virtual void _update() override;
|
||||||
|
|
||||||
// 重置动作
|
|
||||||
virtual void _reset() override;
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
std::function<void()> m_Callback;
|
std::function<void()> m_Callback;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -156,11 +156,13 @@ class EActionManager
|
||||||
{
|
{
|
||||||
friend EGame;
|
friend EGame;
|
||||||
friend ENode;
|
friend ENode;
|
||||||
|
friend EAction;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
// 添加动作
|
// 添加动作
|
||||||
static void addAction(
|
static void addAction(
|
||||||
EAction * action
|
EAction * pAction,
|
||||||
|
ENode * pTargetNode
|
||||||
);
|
);
|
||||||
|
|
||||||
// 继续绑定在节点上的所有动作
|
// 继续绑定在节点上的所有动作
|
||||||
|
|
@ -196,6 +198,11 @@ private:
|
||||||
ENode * pTargetNode
|
ENode * pTargetNode
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// 删除指定的动作
|
||||||
|
static void __destroyAction(
|
||||||
|
EAction * pAction
|
||||||
|
);
|
||||||
|
|
||||||
// 重置所有动作状态
|
// 重置所有动作状态
|
||||||
static void __resetAllActions();
|
static void __resetAllActions();
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue