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