parent
b87998b6a8
commit
9a67931163
|
|
@ -1,31 +0,0 @@
|
||||||
#include "..\eactions.h"
|
|
||||||
|
|
||||||
e2d::ActionCallback::ActionCallback(const std::function<void()>& callback) :
|
|
||||||
m_Callback(callback)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
e2d::ActionCallback::~ActionCallback()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
e2d::ActionCallback * e2d::ActionCallback::copy() const
|
|
||||||
{
|
|
||||||
return new ActionCallback(m_Callback);
|
|
||||||
}
|
|
||||||
|
|
||||||
void e2d::ActionCallback::_init()
|
|
||||||
{
|
|
||||||
EAction::_init();
|
|
||||||
}
|
|
||||||
|
|
||||||
void e2d::ActionCallback::_exec()
|
|
||||||
{
|
|
||||||
m_Callback();
|
|
||||||
this->stop();
|
|
||||||
}
|
|
||||||
|
|
||||||
void e2d::ActionCallback::_reset()
|
|
||||||
{
|
|
||||||
EAction::_reset();
|
|
||||||
}
|
|
||||||
|
|
@ -1,53 +0,0 @@
|
||||||
#include "..\eactions.h"
|
|
||||||
|
|
||||||
|
|
||||||
e2d::ActionMoveBy::ActionMoveBy(float duration, EVec vector) :
|
|
||||||
Animation(duration)
|
|
||||||
{
|
|
||||||
m_MoveVector = vector;
|
|
||||||
}
|
|
||||||
|
|
||||||
e2d::ActionMoveBy::~ActionMoveBy()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void e2d::ActionMoveBy::_init()
|
|
||||||
{
|
|
||||||
Animation::_init();
|
|
||||||
m_BeginPos = m_pTarget->getPos();
|
|
||||||
}
|
|
||||||
|
|
||||||
void e2d::ActionMoveBy::_exec()
|
|
||||||
{
|
|
||||||
while (Animation::_isDelayEnough())
|
|
||||||
{
|
|
||||||
// 计算移动位置
|
|
||||||
float scale = static_cast<float>(m_nDuration) / m_nTotalDuration;
|
|
||||||
// 移动 Sprite
|
|
||||||
m_pTarget->setPos(
|
|
||||||
m_BeginPos.x + m_MoveVector.x * scale,
|
|
||||||
m_BeginPos.y + m_MoveVector.y * scale
|
|
||||||
);
|
|
||||||
// 判断动作是否结束
|
|
||||||
if (_isEnd())
|
|
||||||
{
|
|
||||||
this->stop();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void e2d::ActionMoveBy::_reset()
|
|
||||||
{
|
|
||||||
Animation::_reset();
|
|
||||||
}
|
|
||||||
|
|
||||||
e2d::ActionMoveBy * e2d::ActionMoveBy::copy() const
|
|
||||||
{
|
|
||||||
return new ActionMoveBy(m_nAnimationInterval / 1000.0f, m_MoveVector);
|
|
||||||
}
|
|
||||||
|
|
||||||
e2d::ActionMoveBy * e2d::ActionMoveBy::reverse() const
|
|
||||||
{
|
|
||||||
return new ActionMoveBy(m_nTotalDuration / 1000.0f, EVec(-m_MoveVector.x, -m_MoveVector.y));
|
|
||||||
}
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
||||||
#include "..\eactions.h"
|
|
||||||
|
|
||||||
e2d::ActionMoveTo::ActionMoveTo(float duration, EPoint pos) :
|
|
||||||
ActionMoveBy(duration, EVec())
|
|
||||||
{
|
|
||||||
m_EndPos = pos;
|
|
||||||
}
|
|
||||||
|
|
||||||
e2d::ActionMoveTo::~ActionMoveTo()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
e2d::ActionMoveTo * e2d::ActionMoveTo::copy() const
|
|
||||||
{
|
|
||||||
return new ActionMoveTo(m_nAnimationInterval / 1000.0f, m_EndPos);
|
|
||||||
}
|
|
||||||
|
|
||||||
void e2d::ActionMoveTo::_init()
|
|
||||||
{
|
|
||||||
ActionMoveBy::_init();
|
|
||||||
m_MoveVector = m_EndPos - m_BeginPos;
|
|
||||||
}
|
|
||||||
|
|
||||||
void e2d::ActionMoveTo::_reset()
|
|
||||||
{
|
|
||||||
ActionMoveBy::_reset();
|
|
||||||
}
|
|
||||||
|
|
@ -1,39 +0,0 @@
|
||||||
#include "..\eactions.h"
|
|
||||||
|
|
||||||
e2d::ActionNeverStop::ActionNeverStop(EAction * action) :
|
|
||||||
m_Action(action)
|
|
||||||
{
|
|
||||||
m_Action->retain();
|
|
||||||
}
|
|
||||||
|
|
||||||
e2d::ActionNeverStop::~ActionNeverStop()
|
|
||||||
{
|
|
||||||
SafeRelease(&m_Action);
|
|
||||||
}
|
|
||||||
|
|
||||||
e2d::ActionNeverStop * e2d::ActionNeverStop::copy() const
|
|
||||||
{
|
|
||||||
return new ActionNeverStop(m_Action->copy());
|
|
||||||
}
|
|
||||||
|
|
||||||
void e2d::ActionNeverStop::_init()
|
|
||||||
{
|
|
||||||
EAction::_init();
|
|
||||||
m_Action->m_pTarget = m_pTarget;
|
|
||||||
m_Action->_init();
|
|
||||||
}
|
|
||||||
|
|
||||||
void e2d::ActionNeverStop::_exec()
|
|
||||||
{
|
|
||||||
m_Action->_exec();
|
|
||||||
|
|
||||||
if (m_Action->isEnding())
|
|
||||||
{
|
|
||||||
m_Action->_reset();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void e2d::ActionNeverStop::_reset()
|
|
||||||
{
|
|
||||||
EAction::_reset();
|
|
||||||
}
|
|
||||||
|
|
@ -1,50 +0,0 @@
|
||||||
#include "..\eactions.h"
|
|
||||||
|
|
||||||
|
|
||||||
e2d::ActionOpacityBy::ActionOpacityBy(float duration, float opacity) :
|
|
||||||
Animation(duration)
|
|
||||||
{
|
|
||||||
m_nVariation = opacity;
|
|
||||||
}
|
|
||||||
|
|
||||||
e2d::ActionOpacityBy::~ActionOpacityBy()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void e2d::ActionOpacityBy::_init()
|
|
||||||
{
|
|
||||||
Animation::_init();
|
|
||||||
m_nBeginVal = m_pTarget->getOpacity();
|
|
||||||
}
|
|
||||||
|
|
||||||
void e2d::ActionOpacityBy::_exec()
|
|
||||||
{
|
|
||||||
while (Animation::_isDelayEnough())
|
|
||||||
{
|
|
||||||
// 计算移动位置
|
|
||||||
float scale = static_cast<float>(m_nDuration) / m_nTotalDuration;
|
|
||||||
// 移动 Sprite
|
|
||||||
m_pTarget->setOpacity(m_nBeginVal + m_nVariation * scale);
|
|
||||||
// 判断动作是否结束
|
|
||||||
if (_isEnd())
|
|
||||||
{
|
|
||||||
this->stop();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void e2d::ActionOpacityBy::_reset()
|
|
||||||
{
|
|
||||||
Animation::_reset();
|
|
||||||
}
|
|
||||||
|
|
||||||
e2d::ActionOpacityBy * e2d::ActionOpacityBy::copy() const
|
|
||||||
{
|
|
||||||
return new ActionOpacityBy(m_nAnimationInterval / 1000.0f, m_nVariation);
|
|
||||||
}
|
|
||||||
|
|
||||||
e2d::ActionOpacityBy * e2d::ActionOpacityBy::reverse() const
|
|
||||||
{
|
|
||||||
return new ActionOpacityBy(m_nTotalDuration / 1000.0f, -m_nVariation);
|
|
||||||
}
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
#include "..\eactions.h"
|
|
||||||
|
|
||||||
|
|
||||||
e2d::ActionOpacityTo::ActionOpacityTo(float duration, float opacity) :
|
|
||||||
ActionOpacityBy(duration, 0)
|
|
||||||
{
|
|
||||||
m_nEndVal = opacity;
|
|
||||||
}
|
|
||||||
|
|
||||||
e2d::ActionOpacityTo::~ActionOpacityTo()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
e2d::ActionOpacityTo * e2d::ActionOpacityTo::copy() const
|
|
||||||
{
|
|
||||||
return new ActionOpacityTo(m_nAnimationInterval / 1000.0f, m_nEndVal);
|
|
||||||
}
|
|
||||||
|
|
||||||
void e2d::ActionOpacityTo::_init()
|
|
||||||
{
|
|
||||||
ActionOpacityBy::_init();
|
|
||||||
m_nVariation = m_nEndVal - m_nBeginVal;
|
|
||||||
}
|
|
||||||
|
|
||||||
void e2d::ActionOpacityTo::_reset()
|
|
||||||
{
|
|
||||||
ActionOpacityBy::_reset();
|
|
||||||
}
|
|
||||||
|
|
@ -1,52 +0,0 @@
|
||||||
#include "..\eactions.h"
|
|
||||||
|
|
||||||
|
|
||||||
e2d::ActionScaleBy::ActionScaleBy(float duration, float scaleX, float scaleY) :
|
|
||||||
Animation(duration)
|
|
||||||
{
|
|
||||||
m_nVariationX = scaleX;
|
|
||||||
m_nVariationY = scaleY;
|
|
||||||
}
|
|
||||||
|
|
||||||
e2d::ActionScaleBy::~ActionScaleBy()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void e2d::ActionScaleBy::_init()
|
|
||||||
{
|
|
||||||
Animation::_init();
|
|
||||||
m_nBeginScaleX = m_pTarget->getScaleX();
|
|
||||||
m_nBeginScaleY = m_pTarget->getScaleY();
|
|
||||||
}
|
|
||||||
|
|
||||||
void e2d::ActionScaleBy::_exec()
|
|
||||||
{
|
|
||||||
while (Animation::_isDelayEnough())
|
|
||||||
{
|
|
||||||
// 计算移动位置
|
|
||||||
float scale = static_cast<float>(m_nDuration) / m_nTotalDuration;
|
|
||||||
// 移动 Sprite
|
|
||||||
m_pTarget->setScale(m_nBeginScaleX + m_nVariationX * scale, m_nBeginScaleX + m_nVariationX * scale);
|
|
||||||
// 判断动作是否结束
|
|
||||||
if (_isEnd())
|
|
||||||
{
|
|
||||||
this->stop();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void e2d::ActionScaleBy::_reset()
|
|
||||||
{
|
|
||||||
Animation::_reset();
|
|
||||||
}
|
|
||||||
|
|
||||||
e2d::ActionScaleBy * e2d::ActionScaleBy::copy() const
|
|
||||||
{
|
|
||||||
return new ActionScaleBy(m_nAnimationInterval / 1000.0f, m_nVariationX, m_nVariationY);
|
|
||||||
}
|
|
||||||
|
|
||||||
e2d::ActionScaleBy * e2d::ActionScaleBy::reverse() const
|
|
||||||
{
|
|
||||||
return new ActionScaleBy(m_nTotalDuration / 1000.0f, -m_nVariationX, -m_nVariationY);
|
|
||||||
}
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
||||||
#include "..\eactions.h"
|
|
||||||
|
|
||||||
e2d::ActionScaleTo::ActionScaleTo(float duration, float scaleX, float scaleY) :
|
|
||||||
ActionScaleBy(duration, 0, 0)
|
|
||||||
{
|
|
||||||
m_nEndScaleX = scaleX;
|
|
||||||
m_nEndScaleY = scaleY;
|
|
||||||
}
|
|
||||||
|
|
||||||
e2d::ActionScaleTo::~ActionScaleTo()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
e2d::ActionScaleTo * e2d::ActionScaleTo::copy() const
|
|
||||||
{
|
|
||||||
return new ActionScaleTo(m_nAnimationInterval / 1000.0f, m_nEndScaleX, m_nEndScaleY);
|
|
||||||
}
|
|
||||||
|
|
||||||
void e2d::ActionScaleTo::_init()
|
|
||||||
{
|
|
||||||
ActionScaleBy::_init();
|
|
||||||
m_nVariationX = m_nEndScaleX - m_nBeginScaleX;
|
|
||||||
m_nVariationY = m_nEndScaleY - m_nBeginScaleY;
|
|
||||||
}
|
|
||||||
|
|
||||||
void e2d::ActionScaleTo::_reset()
|
|
||||||
{
|
|
||||||
ActionScaleBy::_reset();
|
|
||||||
}
|
|
||||||
|
|
@ -0,0 +1,31 @@
|
||||||
|
#include "..\eactions.h"
|
||||||
|
|
||||||
|
e2d::EActionCallback::EActionCallback(const std::function<void()>& callback) :
|
||||||
|
m_Callback(callback)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
e2d::EActionCallback::~EActionCallback()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
e2d::EActionCallback * e2d::EActionCallback::copy() const
|
||||||
|
{
|
||||||
|
return new EActionCallback(m_Callback);
|
||||||
|
}
|
||||||
|
|
||||||
|
void e2d::EActionCallback::_init()
|
||||||
|
{
|
||||||
|
EAction::_init();
|
||||||
|
}
|
||||||
|
|
||||||
|
void e2d::EActionCallback::_exec()
|
||||||
|
{
|
||||||
|
m_Callback();
|
||||||
|
this->stop();
|
||||||
|
}
|
||||||
|
|
||||||
|
void e2d::EActionCallback::_reset()
|
||||||
|
{
|
||||||
|
EAction::_reset();
|
||||||
|
}
|
||||||
|
|
@ -1,28 +1,28 @@
|
||||||
#include "..\eactions.h"
|
#include "..\eactions.h"
|
||||||
#include "..\Win\winbase.h"
|
#include "..\Win\winbase.h"
|
||||||
|
|
||||||
e2d::ActionDelay::ActionDelay(float duration)
|
e2d::EActionDelay::EActionDelay(float duration)
|
||||||
{
|
{
|
||||||
setInterval(LONGLONG(duration * 1000));
|
setInterval(LONGLONG(duration * 1000));
|
||||||
}
|
}
|
||||||
|
|
||||||
e2d::ActionDelay::~ActionDelay()
|
e2d::EActionDelay::~EActionDelay()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
e2d::ActionDelay * e2d::ActionDelay::copy() const
|
e2d::EActionDelay * e2d::EActionDelay::copy() const
|
||||||
{
|
{
|
||||||
return new ActionDelay(m_nAnimationInterval / 1000.0f);
|
return new EActionDelay(m_nAnimationInterval / 1000.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::ActionDelay::_init()
|
void e2d::EActionDelay::_init()
|
||||||
{
|
{
|
||||||
EAction::_init();
|
EAction::_init();
|
||||||
// 记录当前时间
|
// 记录当前时间
|
||||||
m_nLast = GetNow();
|
m_nLast = GetNow();
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::ActionDelay::_exec()
|
void e2d::EActionDelay::_exec()
|
||||||
{
|
{
|
||||||
// 判断时间间隔是否足够
|
// 判断时间间隔是否足够
|
||||||
if (GetInterval(m_nLast) > m_nAnimationInterval)
|
if (GetInterval(m_nLast) > m_nAnimationInterval)
|
||||||
|
|
@ -31,7 +31,7 @@ void e2d::ActionDelay::_exec()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::ActionDelay::_reset()
|
void e2d::EActionDelay::_reset()
|
||||||
{
|
{
|
||||||
EAction::_reset();
|
EAction::_reset();
|
||||||
// 记录当前时间
|
// 记录当前时间
|
||||||
|
|
@ -1,20 +1,20 @@
|
||||||
#include "..\eactions.h"
|
#include "..\eactions.h"
|
||||||
#include "..\Win\winbase.h"
|
#include "..\Win\winbase.h"
|
||||||
|
|
||||||
e2d::ActionFrames::ActionFrames() :
|
e2d::EActionFrames::EActionFrames() :
|
||||||
m_nFrameIndex(0)
|
m_nFrameIndex(0)
|
||||||
{
|
{
|
||||||
// 帧动画默认 .5s 刷新一次
|
// 帧动画默认 .5s 刷新一次
|
||||||
setInterval(500);
|
setInterval(500);
|
||||||
}
|
}
|
||||||
|
|
||||||
e2d::ActionFrames::ActionFrames(LONGLONG frameDelay) :
|
e2d::EActionFrames::EActionFrames(LONGLONG frameDelay) :
|
||||||
m_nFrameIndex(0)
|
m_nFrameIndex(0)
|
||||||
{
|
{
|
||||||
setInterval(frameDelay);
|
setInterval(frameDelay);
|
||||||
}
|
}
|
||||||
|
|
||||||
e2d::ActionFrames::~ActionFrames()
|
e2d::EActionFrames::~EActionFrames()
|
||||||
{
|
{
|
||||||
for (auto frame : m_vFrames)
|
for (auto frame : m_vFrames)
|
||||||
{
|
{
|
||||||
|
|
@ -23,21 +23,21 @@ e2d::ActionFrames::~ActionFrames()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::ActionFrames::_init()
|
void e2d::EActionFrames::_init()
|
||||||
{
|
{
|
||||||
EAction::_init();
|
EAction::_init();
|
||||||
// 记录当前时间
|
// 记录当前时间
|
||||||
m_nLast = GetNow();
|
m_nLast = GetNow();
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::ActionFrames::_exec()
|
void e2d::EActionFrames::_exec()
|
||||||
{
|
{
|
||||||
// 判断时间间隔是否足够
|
// 判断时间间隔是否足够
|
||||||
while (GetInterval(m_nLast) > m_nAnimationInterval)
|
while (GetInterval(m_nLast) > m_nAnimationInterval)
|
||||||
{
|
{
|
||||||
// 重新记录时间
|
// 重新记录时间
|
||||||
m_nLast += milliseconds(m_nAnimationInterval);
|
m_nLast += milliseconds(m_nAnimationInterval);
|
||||||
m_pTarget->setImage(m_vFrames[m_nFrameIndex]);
|
//m_pTarget->setImage(m_vFrames[m_nFrameIndex]);
|
||||||
m_nFrameIndex++;
|
m_nFrameIndex++;
|
||||||
// 判断动作是否结束
|
// 判断动作是否结束
|
||||||
if (m_nFrameIndex == m_vFrames.size())
|
if (m_nFrameIndex == m_vFrames.size())
|
||||||
|
|
@ -48,7 +48,7 @@ void e2d::ActionFrames::_exec()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::ActionFrames::_reset()
|
void e2d::EActionFrames::_reset()
|
||||||
{
|
{
|
||||||
EAction::_reset();
|
EAction::_reset();
|
||||||
m_nFrameIndex = 0;
|
m_nFrameIndex = 0;
|
||||||
|
|
@ -56,7 +56,7 @@ void e2d::ActionFrames::_reset()
|
||||||
m_nLast = steady_clock::now();
|
m_nLast = steady_clock::now();
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::ActionFrames::addFrame(Image * frame)
|
void e2d::EActionFrames::addFrame(ESpriteFrame * frame)
|
||||||
{
|
{
|
||||||
if (frame)
|
if (frame)
|
||||||
{
|
{
|
||||||
|
|
@ -65,9 +65,9 @@ void e2d::ActionFrames::addFrame(Image * frame)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
e2d::ActionFrames * e2d::ActionFrames::copy() const
|
e2d::EActionFrames * e2d::EActionFrames::copy() const
|
||||||
{
|
{
|
||||||
auto a = new ActionFrames(this->m_nAnimationInterval);
|
auto a = new EActionFrames(this->m_nAnimationInterval);
|
||||||
for (auto f : m_vFrames)
|
for (auto f : m_vFrames)
|
||||||
{
|
{
|
||||||
a->addFrame(f);
|
a->addFrame(f);
|
||||||
|
|
@ -75,7 +75,7 @@ e2d::ActionFrames * e2d::ActionFrames::copy() const
|
||||||
return a;
|
return a;
|
||||||
}
|
}
|
||||||
|
|
||||||
e2d::ActionFrames * e2d::ActionFrames::reverse() const
|
e2d::EActionFrames * e2d::EActionFrames::reverse() const
|
||||||
{
|
{
|
||||||
auto a = this->copy();
|
auto a = this->copy();
|
||||||
a->m_vFrames.reserve(m_vFrames.size());
|
a->m_vFrames.reserve(m_vFrames.size());
|
||||||
|
|
@ -0,0 +1,53 @@
|
||||||
|
#include "..\eactions.h"
|
||||||
|
|
||||||
|
|
||||||
|
e2d::EActionMoveBy::EActionMoveBy(float duration, EVec vector) :
|
||||||
|
EAnimation(duration)
|
||||||
|
{
|
||||||
|
m_MoveVector = vector;
|
||||||
|
}
|
||||||
|
|
||||||
|
e2d::EActionMoveBy::~EActionMoveBy()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void e2d::EActionMoveBy::_init()
|
||||||
|
{
|
||||||
|
EAnimation::_init();
|
||||||
|
m_BeginPos = m_pTarget->getPos();
|
||||||
|
}
|
||||||
|
|
||||||
|
void e2d::EActionMoveBy::_exec()
|
||||||
|
{
|
||||||
|
while (EAnimation::_isDelayEnough())
|
||||||
|
{
|
||||||
|
// 计算移动位置
|
||||||
|
float scale = static_cast<float>(m_nDuration) / m_nTotalDuration;
|
||||||
|
// 移动 Sprite
|
||||||
|
m_pTarget->setPos(
|
||||||
|
m_BeginPos.x + m_MoveVector.x * scale,
|
||||||
|
m_BeginPos.y + m_MoveVector.y * scale
|
||||||
|
);
|
||||||
|
// 判断动作是否结束
|
||||||
|
if (_isEnd())
|
||||||
|
{
|
||||||
|
this->stop();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void e2d::EActionMoveBy::_reset()
|
||||||
|
{
|
||||||
|
EAnimation::_reset();
|
||||||
|
}
|
||||||
|
|
||||||
|
e2d::EActionMoveBy * e2d::EActionMoveBy::copy() const
|
||||||
|
{
|
||||||
|
return new EActionMoveBy(m_nAnimationInterval / 1000.0f, m_MoveVector);
|
||||||
|
}
|
||||||
|
|
||||||
|
e2d::EActionMoveBy * e2d::EActionMoveBy::reverse() const
|
||||||
|
{
|
||||||
|
return new EActionMoveBy(m_nTotalDuration / 1000.0f, EVec(-m_MoveVector.x, -m_MoveVector.y));
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
#include "..\eactions.h"
|
||||||
|
|
||||||
|
e2d::EActionMoveTo::EActionMoveTo(float duration, EPoint pos) :
|
||||||
|
EActionMoveBy(duration, EVec())
|
||||||
|
{
|
||||||
|
m_EndPos = pos;
|
||||||
|
}
|
||||||
|
|
||||||
|
e2d::EActionMoveTo::~EActionMoveTo()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
e2d::EActionMoveTo * e2d::EActionMoveTo::copy() const
|
||||||
|
{
|
||||||
|
return new EActionMoveTo(m_nAnimationInterval / 1000.0f, m_EndPos);
|
||||||
|
}
|
||||||
|
|
||||||
|
void e2d::EActionMoveTo::_init()
|
||||||
|
{
|
||||||
|
EActionMoveBy::_init();
|
||||||
|
m_MoveVector = m_EndPos - m_BeginPos;
|
||||||
|
}
|
||||||
|
|
||||||
|
void e2d::EActionMoveTo::_reset()
|
||||||
|
{
|
||||||
|
EActionMoveBy::_reset();
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,39 @@
|
||||||
|
#include "..\eactions.h"
|
||||||
|
|
||||||
|
e2d::EActionNeverStop::EActionNeverStop(EAction * action) :
|
||||||
|
m_Action(action)
|
||||||
|
{
|
||||||
|
m_Action->retain();
|
||||||
|
}
|
||||||
|
|
||||||
|
e2d::EActionNeverStop::~EActionNeverStop()
|
||||||
|
{
|
||||||
|
SafeRelease(&m_Action);
|
||||||
|
}
|
||||||
|
|
||||||
|
e2d::EActionNeverStop * e2d::EActionNeverStop::copy() const
|
||||||
|
{
|
||||||
|
return new EActionNeverStop(m_Action->copy());
|
||||||
|
}
|
||||||
|
|
||||||
|
void e2d::EActionNeverStop::_init()
|
||||||
|
{
|
||||||
|
EAction::_init();
|
||||||
|
m_Action->m_pTarget = m_pTarget;
|
||||||
|
m_Action->_init();
|
||||||
|
}
|
||||||
|
|
||||||
|
void e2d::EActionNeverStop::_exec()
|
||||||
|
{
|
||||||
|
m_Action->_exec();
|
||||||
|
|
||||||
|
if (m_Action->isEnding())
|
||||||
|
{
|
||||||
|
m_Action->_reset();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void e2d::EActionNeverStop::_reset()
|
||||||
|
{
|
||||||
|
EAction::_reset();
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,50 @@
|
||||||
|
#include "..\eactions.h"
|
||||||
|
|
||||||
|
|
||||||
|
e2d::EActionOpacityBy::EActionOpacityBy(float duration, float opacity) :
|
||||||
|
EAnimation(duration)
|
||||||
|
{
|
||||||
|
m_nVariation = opacity;
|
||||||
|
}
|
||||||
|
|
||||||
|
e2d::EActionOpacityBy::~EActionOpacityBy()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void e2d::EActionOpacityBy::_init()
|
||||||
|
{
|
||||||
|
EAnimation::_init();
|
||||||
|
m_nBeginVal = m_pTarget->getOpacity();
|
||||||
|
}
|
||||||
|
|
||||||
|
void e2d::EActionOpacityBy::_exec()
|
||||||
|
{
|
||||||
|
while (EAnimation::_isDelayEnough())
|
||||||
|
{
|
||||||
|
// 计算移动位置
|
||||||
|
float scale = static_cast<float>(m_nDuration) / m_nTotalDuration;
|
||||||
|
// 移动 Sprite
|
||||||
|
m_pTarget->setOpacity(m_nBeginVal + m_nVariation * scale);
|
||||||
|
// 判断动作是否结束
|
||||||
|
if (_isEnd())
|
||||||
|
{
|
||||||
|
this->stop();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void e2d::EActionOpacityBy::_reset()
|
||||||
|
{
|
||||||
|
EAnimation::_reset();
|
||||||
|
}
|
||||||
|
|
||||||
|
e2d::EActionOpacityBy * e2d::EActionOpacityBy::copy() const
|
||||||
|
{
|
||||||
|
return new EActionOpacityBy(m_nAnimationInterval / 1000.0f, m_nVariation);
|
||||||
|
}
|
||||||
|
|
||||||
|
e2d::EActionOpacityBy * e2d::EActionOpacityBy::reverse() const
|
||||||
|
{
|
||||||
|
return new EActionOpacityBy(m_nTotalDuration / 1000.0f, -m_nVariation);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,28 @@
|
||||||
|
#include "..\eactions.h"
|
||||||
|
|
||||||
|
|
||||||
|
e2d::EActionOpacityTo::EActionOpacityTo(float duration, float opacity) :
|
||||||
|
EActionOpacityBy(duration, 0)
|
||||||
|
{
|
||||||
|
m_nEndVal = opacity;
|
||||||
|
}
|
||||||
|
|
||||||
|
e2d::EActionOpacityTo::~EActionOpacityTo()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
e2d::EActionOpacityTo * e2d::EActionOpacityTo::copy() const
|
||||||
|
{
|
||||||
|
return new EActionOpacityTo(m_nAnimationInterval / 1000.0f, m_nEndVal);
|
||||||
|
}
|
||||||
|
|
||||||
|
void e2d::EActionOpacityTo::_init()
|
||||||
|
{
|
||||||
|
EActionOpacityBy::_init();
|
||||||
|
m_nVariation = m_nEndVal - m_nBeginVal;
|
||||||
|
}
|
||||||
|
|
||||||
|
void e2d::EActionOpacityTo::_reset()
|
||||||
|
{
|
||||||
|
EActionOpacityBy::_reset();
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,52 @@
|
||||||
|
#include "..\eactions.h"
|
||||||
|
|
||||||
|
|
||||||
|
e2d::EActionScaleBy::EActionScaleBy(float duration, float scaleX, float scaleY) :
|
||||||
|
EAnimation(duration)
|
||||||
|
{
|
||||||
|
m_nVariationX = scaleX;
|
||||||
|
m_nVariationY = scaleY;
|
||||||
|
}
|
||||||
|
|
||||||
|
e2d::EActionScaleBy::~EActionScaleBy()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void e2d::EActionScaleBy::_init()
|
||||||
|
{
|
||||||
|
EAnimation::_init();
|
||||||
|
m_nBeginScaleX = m_pTarget->getScaleX();
|
||||||
|
m_nBeginScaleY = m_pTarget->getScaleY();
|
||||||
|
}
|
||||||
|
|
||||||
|
void e2d::EActionScaleBy::_exec()
|
||||||
|
{
|
||||||
|
while (EAnimation::_isDelayEnough())
|
||||||
|
{
|
||||||
|
// 计算移动位置
|
||||||
|
float scale = static_cast<float>(m_nDuration) / m_nTotalDuration;
|
||||||
|
// 移动 Sprite
|
||||||
|
m_pTarget->setScale(m_nBeginScaleX + m_nVariationX * scale, m_nBeginScaleX + m_nVariationX * scale);
|
||||||
|
// 判断动作是否结束
|
||||||
|
if (_isEnd())
|
||||||
|
{
|
||||||
|
this->stop();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void e2d::EActionScaleBy::_reset()
|
||||||
|
{
|
||||||
|
EAnimation::_reset();
|
||||||
|
}
|
||||||
|
|
||||||
|
e2d::EActionScaleBy * e2d::EActionScaleBy::copy() const
|
||||||
|
{
|
||||||
|
return new EActionScaleBy(m_nAnimationInterval / 1000.0f, m_nVariationX, m_nVariationY);
|
||||||
|
}
|
||||||
|
|
||||||
|
e2d::EActionScaleBy * e2d::EActionScaleBy::reverse() const
|
||||||
|
{
|
||||||
|
return new EActionScaleBy(m_nTotalDuration / 1000.0f, -m_nVariationX, -m_nVariationY);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,29 @@
|
||||||
|
#include "..\eactions.h"
|
||||||
|
|
||||||
|
e2d::EActionScaleTo::EActionScaleTo(float duration, float scaleX, float scaleY) :
|
||||||
|
EActionScaleBy(duration, 0, 0)
|
||||||
|
{
|
||||||
|
m_nEndScaleX = scaleX;
|
||||||
|
m_nEndScaleY = scaleY;
|
||||||
|
}
|
||||||
|
|
||||||
|
e2d::EActionScaleTo::~EActionScaleTo()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
e2d::EActionScaleTo * e2d::EActionScaleTo::copy() const
|
||||||
|
{
|
||||||
|
return new EActionScaleTo(m_nAnimationInterval / 1000.0f, m_nEndScaleX, m_nEndScaleY);
|
||||||
|
}
|
||||||
|
|
||||||
|
void e2d::EActionScaleTo::_init()
|
||||||
|
{
|
||||||
|
EActionScaleBy::_init();
|
||||||
|
m_nVariationX = m_nEndScaleX - m_nBeginScaleX;
|
||||||
|
m_nVariationY = m_nEndScaleY - m_nBeginScaleY;
|
||||||
|
}
|
||||||
|
|
||||||
|
void e2d::EActionScaleTo::_reset()
|
||||||
|
{
|
||||||
|
EActionScaleBy::_reset();
|
||||||
|
}
|
||||||
|
|
@ -1,12 +1,12 @@
|
||||||
#include "..\eactions.h"
|
#include "..\eactions.h"
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
|
|
||||||
e2d::ActionSequence::ActionSequence() :
|
e2d::EActionSequence::EActionSequence() :
|
||||||
m_nActionIndex(0)
|
m_nActionIndex(0)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
e2d::ActionSequence::ActionSequence(int number, EAction * action1, ...) :
|
e2d::EActionSequence::EActionSequence(int number, EAction * action1, ...) :
|
||||||
m_nActionIndex(0)
|
m_nActionIndex(0)
|
||||||
{
|
{
|
||||||
va_list params;
|
va_list params;
|
||||||
|
|
@ -21,7 +21,7 @@ e2d::ActionSequence::ActionSequence(int number, EAction * action1, ...) :
|
||||||
va_end(params);
|
va_end(params);
|
||||||
}
|
}
|
||||||
|
|
||||||
e2d::ActionSequence::~ActionSequence()
|
e2d::EActionSequence::~EActionSequence()
|
||||||
{
|
{
|
||||||
for (auto action : m_vActions)
|
for (auto action : m_vActions)
|
||||||
{
|
{
|
||||||
|
|
@ -29,7 +29,7 @@ e2d::ActionSequence::~ActionSequence()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::ActionSequence::_init()
|
void e2d::EActionSequence::_init()
|
||||||
{
|
{
|
||||||
EAction::_init();
|
EAction::_init();
|
||||||
// ½«ËùÓж¯×÷ÓëÄ¿±ê°ó¶¨
|
// ½«ËùÓж¯×÷ÓëÄ¿±ê°ó¶¨
|
||||||
|
|
@ -41,7 +41,7 @@ void e2d::ActionSequence::_init()
|
||||||
m_vActions[0]->_init();
|
m_vActions[0]->_init();
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::ActionSequence::_exec()
|
void e2d::EActionSequence::_exec()
|
||||||
{
|
{
|
||||||
m_vActions[m_nActionIndex]->_exec();
|
m_vActions[m_nActionIndex]->_exec();
|
||||||
|
|
||||||
|
|
@ -59,7 +59,7 @@ void e2d::ActionSequence::_exec()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::ActionSequence::_reset()
|
void e2d::EActionSequence::_reset()
|
||||||
{
|
{
|
||||||
EAction::_reset();
|
EAction::_reset();
|
||||||
for (auto action : m_vActions)
|
for (auto action : m_vActions)
|
||||||
|
|
@ -69,15 +69,15 @@ void e2d::ActionSequence::_reset()
|
||||||
m_nActionIndex = 0;
|
m_nActionIndex = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::ActionSequence::addAction(EAction * action)
|
void e2d::EActionSequence::addAction(EAction * action)
|
||||||
{
|
{
|
||||||
m_vActions.push_back(action);
|
m_vActions.push_back(action);
|
||||||
action->retain();
|
action->retain();
|
||||||
}
|
}
|
||||||
|
|
||||||
e2d::ActionSequence * e2d::ActionSequence::copy() const
|
e2d::EActionSequence * e2d::EActionSequence::copy() const
|
||||||
{
|
{
|
||||||
auto a = new ActionSequence();
|
auto a = new EActionSequence();
|
||||||
for (auto action : m_vActions)
|
for (auto action : m_vActions)
|
||||||
{
|
{
|
||||||
a->addAction(action->copy());
|
a->addAction(action->copy());
|
||||||
|
|
@ -85,9 +85,9 @@ e2d::ActionSequence * e2d::ActionSequence::copy() const
|
||||||
return a;
|
return a;
|
||||||
}
|
}
|
||||||
|
|
||||||
e2d::ActionSequence * e2d::ActionSequence::reverse(bool actionReverse) const
|
e2d::EActionSequence * e2d::EActionSequence::reverse(bool actionReverse) const
|
||||||
{
|
{
|
||||||
auto a = new ActionSequence();
|
auto a = new EActionSequence();
|
||||||
for (auto action : a->m_vActions)
|
for (auto action : a->m_vActions)
|
||||||
{
|
{
|
||||||
if (actionReverse)
|
if (actionReverse)
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
#include "..\eactions.h"
|
#include "..\eactions.h"
|
||||||
|
|
||||||
e2d::ActionTwo::ActionTwo(EAction * actionFirst, EAction * actionSecond) :
|
e2d::EActionTwo::EActionTwo(EAction * actionFirst, EAction * actionSecond) :
|
||||||
m_FirstAction(actionFirst),
|
m_FirstAction(actionFirst),
|
||||||
m_SecondAction(actionSecond)
|
m_SecondAction(actionSecond)
|
||||||
{
|
{
|
||||||
|
|
@ -8,30 +8,30 @@ e2d::ActionTwo::ActionTwo(EAction * actionFirst, EAction * actionSecond) :
|
||||||
m_SecondAction->retain();
|
m_SecondAction->retain();
|
||||||
}
|
}
|
||||||
|
|
||||||
e2d::ActionTwo::~ActionTwo()
|
e2d::EActionTwo::~EActionTwo()
|
||||||
{
|
{
|
||||||
SafeRelease(&m_FirstAction);
|
SafeRelease(&m_FirstAction);
|
||||||
SafeRelease(&m_SecondAction);
|
SafeRelease(&m_SecondAction);
|
||||||
}
|
}
|
||||||
|
|
||||||
e2d::ActionTwo * e2d::ActionTwo::copy() const
|
e2d::EActionTwo * e2d::EActionTwo::copy() const
|
||||||
{
|
{
|
||||||
return new ActionTwo(m_FirstAction->copy(), m_SecondAction->copy());
|
return new EActionTwo(m_FirstAction->copy(), m_SecondAction->copy());
|
||||||
}
|
}
|
||||||
|
|
||||||
e2d::ActionTwo * e2d::ActionTwo::reverse(bool actionReverse) const
|
e2d::EActionTwo * e2d::EActionTwo::reverse(bool actionReverse) const
|
||||||
{
|
{
|
||||||
if (actionReverse)
|
if (actionReverse)
|
||||||
{
|
{
|
||||||
return new ActionTwo(m_SecondAction->reverse(), m_FirstAction->reverse());
|
return new EActionTwo(m_SecondAction->reverse(), m_FirstAction->reverse());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return new ActionTwo(m_SecondAction->copy(), m_FirstAction->copy());
|
return new EActionTwo(m_SecondAction->copy(), m_FirstAction->copy());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::ActionTwo::_init()
|
void e2d::EActionTwo::_init()
|
||||||
{
|
{
|
||||||
EAction::_init();
|
EAction::_init();
|
||||||
m_FirstAction->m_pTarget = m_pTarget;
|
m_FirstAction->m_pTarget = m_pTarget;
|
||||||
|
|
@ -40,7 +40,7 @@ void e2d::ActionTwo::_init()
|
||||||
m_FirstAction->_init();
|
m_FirstAction->_init();
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::ActionTwo::_exec()
|
void e2d::EActionTwo::_exec()
|
||||||
{
|
{
|
||||||
if (!m_FirstAction->isEnding())
|
if (!m_FirstAction->isEnding())
|
||||||
{
|
{
|
||||||
|
|
@ -61,7 +61,7 @@ void e2d::ActionTwo::_exec()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::ActionTwo::_reset()
|
void e2d::EActionTwo::_reset()
|
||||||
{
|
{
|
||||||
EAction::_reset();
|
EAction::_reset();
|
||||||
|
|
||||||
|
|
@ -1,29 +1,29 @@
|
||||||
#include "..\eactions.h"
|
#include "..\eactions.h"
|
||||||
#include "..\Win\winbase.h"
|
#include "..\Win\winbase.h"
|
||||||
|
|
||||||
e2d::Animation::Animation(float duration)
|
e2d::EAnimation::EAnimation(float duration)
|
||||||
{
|
{
|
||||||
m_nDuration = 0;
|
m_nDuration = 0;
|
||||||
m_nTotalDuration = UINT(duration * 1000);
|
m_nTotalDuration = UINT(duration * 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
e2d::Animation::~Animation()
|
e2d::EAnimation::~EAnimation()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
bool e2d::Animation::_isEnd() const
|
bool e2d::EAnimation::_isEnd() const
|
||||||
{
|
{
|
||||||
return m_nDuration >= m_nTotalDuration;
|
return m_nDuration >= m_nTotalDuration;
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::Animation::_init()
|
void e2d::EAnimation::_init()
|
||||||
{
|
{
|
||||||
EAction::_init();
|
EAction::_init();
|
||||||
// 记录当前时间
|
// 记录当前时间
|
||||||
m_nLast = GetNow();
|
m_nLast = GetNow();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool e2d::Animation::_isDelayEnough()
|
bool e2d::EAnimation::_isDelayEnough()
|
||||||
{
|
{
|
||||||
// 判断时间间隔是否足够
|
// 判断时间间隔是否足够
|
||||||
if (GetInterval(m_nLast) > m_nAnimationInterval)
|
if (GetInterval(m_nLast) > m_nAnimationInterval)
|
||||||
|
|
@ -36,7 +36,7 @@ bool e2d::Animation::_isDelayEnough()
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::Animation::_reset()
|
void e2d::EAnimation::_reset()
|
||||||
{
|
{
|
||||||
EAction::_reset();
|
EAction::_reset();
|
||||||
m_nDuration = 0;
|
m_nDuration = 0;
|
||||||
|
|
@ -192,20 +192,20 @@
|
||||||
</Lib>
|
</Lib>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="Action\Action.cpp" />
|
<ClCompile Include="Action\EAction.cpp" />
|
||||||
<ClCompile Include="Action\ActionCallback.cpp" />
|
<ClCompile Include="Action\EActionCallback.cpp" />
|
||||||
<ClCompile Include="Action\ActionDelay.cpp" />
|
<ClCompile Include="Action\EActionDelay.cpp" />
|
||||||
<ClCompile Include="Action\ActionFrames.cpp" />
|
<ClCompile Include="Action\EActionFrames.cpp" />
|
||||||
<ClCompile Include="Action\ActionMoveBy.cpp" />
|
<ClCompile Include="Action\EActionMoveBy.cpp" />
|
||||||
<ClCompile Include="Action\ActionMoveTo.cpp" />
|
<ClCompile Include="Action\EActionMoveTo.cpp" />
|
||||||
<ClCompile Include="Action\ActionNeverStop.cpp" />
|
<ClCompile Include="Action\EActionNeverStop.cpp" />
|
||||||
<ClCompile Include="Action\ActionOpacityBy.cpp" />
|
<ClCompile Include="Action\EActionOpacityBy.cpp" />
|
||||||
<ClCompile Include="Action\ActionOpacityTo.cpp" />
|
<ClCompile Include="Action\EActionOpacityTo.cpp" />
|
||||||
<ClCompile Include="Action\ActionScaleBy.cpp" />
|
<ClCompile Include="Action\EActionScaleBy.cpp" />
|
||||||
<ClCompile Include="Action\ActionScaleTo.cpp" />
|
<ClCompile Include="Action\EActionScaleTo.cpp" />
|
||||||
<ClCompile Include="Action\ActionSequence.cpp" />
|
<ClCompile Include="Action\EActionSequence.cpp" />
|
||||||
<ClCompile Include="Action\ActionTwo.cpp" />
|
<ClCompile Include="Action\EActionTwo.cpp" />
|
||||||
<ClCompile Include="Action\Animation.cpp" />
|
<ClCompile Include="Action\EAnimation.cpp" />
|
||||||
<ClCompile Include="Base\EApp.cpp" />
|
<ClCompile Include="Base\EApp.cpp" />
|
||||||
<ClCompile Include="Base\EObject.cpp" />
|
<ClCompile Include="Base\EObject.cpp" />
|
||||||
<ClCompile Include="Base\EScene.cpp" />
|
<ClCompile Include="Base\EScene.cpp" />
|
||||||
|
|
|
||||||
|
|
@ -87,51 +87,51 @@
|
||||||
<ClCompile Include="Node\ETexture.cpp">
|
<ClCompile Include="Node\ETexture.cpp">
|
||||||
<Filter>Node</Filter>
|
<Filter>Node</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="Action\Action.cpp">
|
|
||||||
<Filter>Action</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="Action\ActionCallback.cpp">
|
|
||||||
<Filter>Action</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="Action\ActionDelay.cpp">
|
|
||||||
<Filter>Action</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="Action\ActionFrames.cpp">
|
|
||||||
<Filter>Action</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="Action\ActionMoveBy.cpp">
|
|
||||||
<Filter>Action</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="Action\ActionMoveTo.cpp">
|
|
||||||
<Filter>Action</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="Action\ActionNeverStop.cpp">
|
|
||||||
<Filter>Action</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="Action\ActionOpacityBy.cpp">
|
|
||||||
<Filter>Action</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="Action\ActionOpacityTo.cpp">
|
|
||||||
<Filter>Action</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="Action\ActionScaleBy.cpp">
|
|
||||||
<Filter>Action</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="Action\ActionScaleTo.cpp">
|
|
||||||
<Filter>Action</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="Action\ActionSequence.cpp">
|
|
||||||
<Filter>Action</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="Action\ActionTwo.cpp">
|
|
||||||
<Filter>Action</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="Action\Animation.cpp">
|
|
||||||
<Filter>Action</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="Tool\EActionManager.cpp">
|
<ClCompile Include="Tool\EActionManager.cpp">
|
||||||
<Filter>Tool</Filter>
|
<Filter>Tool</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="Action\EAction.cpp">
|
||||||
|
<Filter>Action</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="Action\EActionCallback.cpp">
|
||||||
|
<Filter>Action</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="Action\EActionDelay.cpp">
|
||||||
|
<Filter>Action</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="Action\EActionFrames.cpp">
|
||||||
|
<Filter>Action</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="Action\EActionMoveBy.cpp">
|
||||||
|
<Filter>Action</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="Action\EActionMoveTo.cpp">
|
||||||
|
<Filter>Action</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="Action\EActionNeverStop.cpp">
|
||||||
|
<Filter>Action</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="Action\EActionOpacityBy.cpp">
|
||||||
|
<Filter>Action</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="Action\EActionOpacityTo.cpp">
|
||||||
|
<Filter>Action</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="Action\EActionScaleBy.cpp">
|
||||||
|
<Filter>Action</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="Action\EActionScaleTo.cpp">
|
||||||
|
<Filter>Action</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="Action\EActionSequence.cpp">
|
||||||
|
<Filter>Action</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="Action\EActionTwo.cpp">
|
||||||
|
<Filter>Action</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="Action\EAnimation.cpp">
|
||||||
|
<Filter>Action</Filter>
|
||||||
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="Win\winbase.h">
|
<ClInclude Include="Win\winbase.h">
|
||||||
|
|
|
||||||
|
|
@ -642,8 +642,28 @@ void e2d::ENode::runAction(EAction * action)
|
||||||
EActionManager::bindAction(action, this);
|
EActionManager::bindAction(action, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void e2d::ENode::resumeAction(EAction * action)
|
||||||
|
{
|
||||||
|
if (action->getTarget() == this)
|
||||||
|
{
|
||||||
|
action->resume();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void e2d::ENode::pauseAction(EAction * action)
|
||||||
|
{
|
||||||
|
if (action->getTarget() == this)
|
||||||
|
{
|
||||||
|
action->pause();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void e2d::ENode::stopAction(EAction * action)
|
void e2d::ENode::stopAction(EAction * action)
|
||||||
{
|
{
|
||||||
|
if (action->getTarget() == this)
|
||||||
|
{
|
||||||
|
action->stop();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::ENode::setVisiable(bool value)
|
void e2d::ENode::setVisiable(bool value)
|
||||||
|
|
|
||||||
|
|
@ -5,18 +5,18 @@
|
||||||
namespace e2d
|
namespace e2d
|
||||||
{
|
{
|
||||||
|
|
||||||
class ActionTwo;
|
class EActionTwo;
|
||||||
class ActionNeverStop;
|
class EActionNeverStop;
|
||||||
class ActionSequence;
|
class EActionSequence;
|
||||||
|
|
||||||
class EAction :
|
class EAction :
|
||||||
public EObject
|
public EObject
|
||||||
{
|
{
|
||||||
friend ENode;
|
friend ENode;
|
||||||
friend EActionManager;
|
friend EActionManager;
|
||||||
friend ActionTwo;
|
friend EActionTwo;
|
||||||
friend ActionNeverStop;
|
friend EActionNeverStop;
|
||||||
friend ActionSequence;
|
friend EActionSequence;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
EAction();
|
EAction();
|
||||||
|
|
@ -25,20 +25,30 @@ public:
|
||||||
|
|
||||||
// 获取动作运行状态
|
// 获取动作运行状态
|
||||||
virtual bool isRunning();
|
virtual bool isRunning();
|
||||||
|
|
||||||
// 获取动作结束状态
|
// 获取动作结束状态
|
||||||
virtual bool isEnding();
|
virtual bool isEnding();
|
||||||
|
|
||||||
// 继续动作
|
// 继续动作
|
||||||
virtual void start();
|
virtual void start();
|
||||||
|
|
||||||
// 继续动作
|
// 继续动作
|
||||||
virtual void resume();
|
virtual void resume();
|
||||||
|
|
||||||
// 暂停动作
|
// 暂停动作
|
||||||
virtual void pause();
|
virtual void pause();
|
||||||
|
|
||||||
// 停止动作
|
// 停止动作
|
||||||
virtual void stop();
|
virtual void stop();
|
||||||
// 设置动作每一帧时间间隔
|
|
||||||
virtual void setInterval(LONGLONG milliSeconds);
|
// 设置动作每一帧的时间间隔
|
||||||
|
virtual void setInterval(
|
||||||
|
LONGLONG milliSeconds
|
||||||
|
);
|
||||||
|
|
||||||
// 获取一个新的拷贝动作
|
// 获取一个新的拷贝动作
|
||||||
virtual EAction * copy() const = 0;
|
virtual EAction * copy() const = 0;
|
||||||
|
|
||||||
// 获取一个新的逆向动作
|
// 获取一个新的逆向动作
|
||||||
virtual EAction * reverse() const;
|
virtual EAction * reverse() const;
|
||||||
// 获取执行该动作的目标
|
// 获取执行该动作的目标
|
||||||
|
|
@ -72,12 +82,12 @@ protected:
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class Animation :
|
class EAnimation :
|
||||||
public EAction
|
public EAction
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Animation(float duration);
|
EAnimation(float duration);
|
||||||
virtual ~Animation();
|
virtual ~EAnimation();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
LONGLONG m_nDuration;
|
LONGLONG m_nDuration;
|
||||||
|
|
@ -91,15 +101,15 @@ protected:
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class ActionMoveBy :
|
class EActionMoveBy :
|
||||||
public Animation
|
public EAnimation
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ActionMoveBy(float duration, EVec vector);
|
EActionMoveBy(float duration, EVec vector);
|
||||||
virtual ~ActionMoveBy();
|
virtual ~EActionMoveBy();
|
||||||
|
|
||||||
virtual ActionMoveBy * copy() const override;
|
virtual EActionMoveBy * copy() const override;
|
||||||
virtual ActionMoveBy * reverse() const override;
|
virtual EActionMoveBy * reverse() const override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
EPoint m_BeginPos;
|
EPoint m_BeginPos;
|
||||||
|
|
@ -112,14 +122,14 @@ protected:
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class ActionMoveTo :
|
class EActionMoveTo :
|
||||||
public ActionMoveBy
|
public EActionMoveBy
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ActionMoveTo(float duration, EPoint pos);
|
EActionMoveTo(float duration, EPoint pos);
|
||||||
virtual ~ActionMoveTo();
|
virtual ~EActionMoveTo();
|
||||||
|
|
||||||
virtual ActionMoveTo * copy() const override;
|
virtual EActionMoveTo * copy() const override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
EPoint m_EndPos;
|
EPoint m_EndPos;
|
||||||
|
|
@ -130,15 +140,15 @@ protected:
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class ActionScaleBy :
|
class EActionScaleBy :
|
||||||
public Animation
|
public EAnimation
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ActionScaleBy(float duration, float scaleX, float scaleY);
|
EActionScaleBy(float duration, float scaleX, float scaleY);
|
||||||
virtual ~ActionScaleBy();
|
virtual ~EActionScaleBy();
|
||||||
|
|
||||||
virtual ActionScaleBy * copy() const override;
|
virtual EActionScaleBy * copy() const override;
|
||||||
virtual ActionScaleBy * reverse() const override;
|
virtual EActionScaleBy * reverse() const override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
float m_nBeginScaleX;
|
float m_nBeginScaleX;
|
||||||
|
|
@ -153,14 +163,14 @@ protected:
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class ActionScaleTo :
|
class EActionScaleTo :
|
||||||
public ActionScaleBy
|
public EActionScaleBy
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ActionScaleTo(float duration, float scaleX, float scaleY);
|
EActionScaleTo(float duration, float scaleX, float scaleY);
|
||||||
virtual ~ActionScaleTo();
|
virtual ~EActionScaleTo();
|
||||||
|
|
||||||
virtual ActionScaleTo * copy() const override;
|
virtual EActionScaleTo * copy() const override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
float m_nEndScaleX;
|
float m_nEndScaleX;
|
||||||
|
|
@ -172,15 +182,15 @@ protected:
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class ActionOpacityBy :
|
class EActionOpacityBy :
|
||||||
public Animation
|
public EAnimation
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ActionOpacityBy(float duration, float opacity);
|
EActionOpacityBy(float duration, float opacity);
|
||||||
virtual ~ActionOpacityBy();
|
virtual ~EActionOpacityBy();
|
||||||
|
|
||||||
virtual ActionOpacityBy * copy() const override;
|
virtual EActionOpacityBy * copy() const override;
|
||||||
virtual ActionOpacityBy * reverse() const override;
|
virtual EActionOpacityBy * reverse() const override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
float m_nBeginVal;
|
float m_nBeginVal;
|
||||||
|
|
@ -193,14 +203,14 @@ protected:
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class ActionOpacityTo :
|
class EActionOpacityTo :
|
||||||
public ActionOpacityBy
|
public EActionOpacityBy
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ActionOpacityTo(float duration, float opacity);
|
EActionOpacityTo(float duration, float opacity);
|
||||||
virtual ~ActionOpacityTo();
|
virtual ~EActionOpacityTo();
|
||||||
|
|
||||||
virtual ActionOpacityTo * copy() const override;
|
virtual EActionOpacityTo * copy() const override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
float m_nEndVal;
|
float m_nEndVal;
|
||||||
|
|
@ -212,30 +222,30 @@ protected:
|
||||||
|
|
||||||
|
|
||||||
class ActionFadeIn :
|
class ActionFadeIn :
|
||||||
public ActionOpacityTo
|
public EActionOpacityTo
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ActionFadeIn(float duration) : ActionOpacityTo(duration, 1) {}
|
ActionFadeIn(float duration) : EActionOpacityTo(duration, 1) {}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class ActionFadeOut :
|
class ActionFadeOut :
|
||||||
public ActionOpacityTo
|
public EActionOpacityTo
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ActionFadeOut(float duration) : ActionOpacityTo(duration, 0) {}
|
ActionFadeOut(float duration) : EActionOpacityTo(duration, 0) {}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class ActionTwo :
|
class EActionTwo :
|
||||||
public EAction
|
public EAction
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ActionTwo(EAction * actionFirst, EAction * actionSecond);
|
EActionTwo(EAction * actionFirst, EAction * actionSecond);
|
||||||
virtual ~ActionTwo();
|
virtual ~EActionTwo();
|
||||||
|
|
||||||
virtual ActionTwo * copy() const override;
|
virtual EActionTwo * copy() const override;
|
||||||
virtual ActionTwo * reverse(bool actionReverse = true) const;
|
virtual EActionTwo * reverse(bool actionReverse = true) const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
EAction * m_FirstAction;
|
EAction * m_FirstAction;
|
||||||
|
|
@ -248,17 +258,17 @@ protected:
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class ActionSequence :
|
class EActionSequence :
|
||||||
public EAction
|
public EAction
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ActionSequence();
|
EActionSequence();
|
||||||
ActionSequence(int number, EAction * action1, ...);
|
EActionSequence(int number, EAction * action1, ...);
|
||||||
virtual ~ActionSequence();
|
virtual ~EActionSequence();
|
||||||
|
|
||||||
void addAction(EAction * action);
|
void addAction(EAction * action);
|
||||||
virtual ActionSequence * copy() const override;
|
virtual EActionSequence * copy() const override;
|
||||||
virtual ActionSequence * reverse(bool actionReverse = true) const;
|
virtual EActionSequence * reverse(bool actionReverse = true) const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
UINT m_nActionIndex;
|
UINT m_nActionIndex;
|
||||||
|
|
@ -271,14 +281,14 @@ protected:
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class ActionDelay :
|
class EActionDelay :
|
||||||
public EAction
|
public EAction
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ActionDelay(float duration);
|
EActionDelay(float duration);
|
||||||
virtual ~ActionDelay();
|
virtual ~EActionDelay();
|
||||||
|
|
||||||
virtual ActionDelay * copy() const override;
|
virtual EActionDelay * copy() const override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void _init() override;
|
virtual void _init() override;
|
||||||
|
|
@ -287,14 +297,14 @@ protected:
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class ActionNeverStop :
|
class EActionNeverStop :
|
||||||
public EAction
|
public EAction
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ActionNeverStop(EAction * action);
|
EActionNeverStop(EAction * action);
|
||||||
virtual ~ActionNeverStop();
|
virtual ~EActionNeverStop();
|
||||||
|
|
||||||
virtual ActionNeverStop * copy() const override;
|
virtual EActionNeverStop * copy() const override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
EAction * m_Action;
|
EAction * m_Action;
|
||||||
|
|
@ -306,21 +316,21 @@ protected:
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class ActionFrames :
|
class EActionFrames :
|
||||||
public EAction
|
public EAction
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ActionFrames();
|
EActionFrames();
|
||||||
ActionFrames(LONGLONG frameDelay);
|
EActionFrames(LONGLONG frameDelay);
|
||||||
~ActionFrames();
|
~EActionFrames();
|
||||||
|
|
||||||
void addFrame(Image * frame);
|
void addFrame(ESpriteFrame * frame);
|
||||||
virtual ActionFrames * copy() const override;
|
virtual EActionFrames * copy() const override;
|
||||||
virtual ActionFrames * reverse() const override;
|
virtual EActionFrames * reverse() const override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
UINT m_nFrameIndex;
|
UINT m_nFrameIndex;
|
||||||
EVector<Image*> m_vFrames;
|
EVector<ESpriteFrame*> m_vFrames;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void _init() override;
|
virtual void _init() override;
|
||||||
|
|
@ -329,14 +339,14 @@ protected:
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class ActionCallback :
|
class EActionCallback :
|
||||||
public EAction
|
public EAction
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ActionCallback(const std::function<void()>& callback);
|
EActionCallback(const std::function<void()>& callback);
|
||||||
~ActionCallback();
|
~EActionCallback();
|
||||||
|
|
||||||
virtual ActionCallback * copy() const override;
|
virtual EActionCallback * copy() const override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
std::function<void()> m_Callback;
|
std::function<void()> m_Callback;
|
||||||
|
|
|
||||||
|
|
@ -260,6 +260,16 @@ public:
|
||||||
EAction * action
|
EAction * action
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// 继续动画
|
||||||
|
virtual void resumeAction(
|
||||||
|
EAction * action
|
||||||
|
);
|
||||||
|
|
||||||
|
// 暂停动画
|
||||||
|
virtual void pauseAction(
|
||||||
|
EAction * action
|
||||||
|
);
|
||||||
|
|
||||||
// 停止动画
|
// 停止动画
|
||||||
virtual void stopAction(
|
virtual void stopAction(
|
||||||
EAction * action
|
EAction * action
|
||||||
|
|
@ -484,6 +494,14 @@ protected:
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
class ESpriteFrame :
|
||||||
|
public EObject
|
||||||
|
{
|
||||||
|
protected:
|
||||||
|
ETexture * texture;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
class EFont :
|
class EFont :
|
||||||
public EObject
|
public EObject
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue