add actions functions
This commit is contained in:
parent
af73a5df92
commit
213b174dac
|
|
@ -5,12 +5,27 @@ e2d::Animation::Animation()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
e2d::Animation::Animation(double invertal)
|
e2d::Animation::Animation(double interval)
|
||||||
: m_nFrameIndex(0)
|
: m_nFrameIndex(0)
|
||||||
, m_fInterval(invertal)
|
, m_fInterval(interval)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
e2d::Animation::Animation(double interval, int number, Image * frame, ...)
|
||||||
|
: m_nFrameIndex(0)
|
||||||
|
, m_fInterval(interval)
|
||||||
|
{
|
||||||
|
Image ** ppImage = &frame;
|
||||||
|
|
||||||
|
while (number > 0)
|
||||||
|
{
|
||||||
|
ASSERT((*ppImage) != nullptr, "Animation NULL pointer exception!");
|
||||||
|
this->addKeyframe(*ppImage);
|
||||||
|
ppImage++;
|
||||||
|
number--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
e2d::Animation::~Animation()
|
e2d::Animation::~Animation()
|
||||||
{
|
{
|
||||||
for (auto frame : m_vFrames)
|
for (auto frame : m_vFrames)
|
||||||
|
|
|
||||||
132
core/eactions.h
132
core/eactions.h
|
|
@ -91,7 +91,7 @@ class ActionGradual :
|
||||||
public Action
|
public Action
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// 创建时长动画
|
// 创建特定时长的持续动画
|
||||||
ActionGradual(
|
ActionGradual(
|
||||||
double duration
|
double duration
|
||||||
);
|
);
|
||||||
|
|
@ -403,7 +403,7 @@ public:
|
||||||
// 创建顺序动作
|
// 创建顺序动作
|
||||||
ActionSequence(
|
ActionSequence(
|
||||||
int number, /* 顺序动作数量 */
|
int number, /* 顺序动作数量 */
|
||||||
Action * action1, /* 第一个动作 */
|
Action * action, /* 第一个动作 */
|
||||||
...
|
...
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
@ -509,14 +509,22 @@ public:
|
||||||
|
|
||||||
// 创建特定帧间隔的帧动画
|
// 创建特定帧间隔的帧动画
|
||||||
Animation(
|
Animation(
|
||||||
double interval /* 帧间隔(秒) */
|
double interval /* 帧间隔(秒) */
|
||||||
|
);
|
||||||
|
|
||||||
|
// 创建帧动画
|
||||||
|
Animation(
|
||||||
|
double interval, /* 帧间隔(秒) */
|
||||||
|
int number, /* 帧数量 */
|
||||||
|
Image * frame, /* 第一帧 */
|
||||||
|
...
|
||||||
);
|
);
|
||||||
|
|
||||||
virtual ~Animation();
|
virtual ~Animation();
|
||||||
|
|
||||||
// 添加关键帧
|
// 添加关键帧
|
||||||
void addKeyframe(
|
void addKeyframe(
|
||||||
Image * frame /* 添加关键帧 */
|
Image * frame /* 关键帧 */
|
||||||
);
|
);
|
||||||
|
|
||||||
// 设置每一帧的时间间隔
|
// 设置每一帧的时间间隔
|
||||||
|
|
@ -570,4 +578,120 @@ protected:
|
||||||
VoidFunction m_Callback;
|
VoidFunction m_Callback;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace e2d
|
||||||
|
{
|
||||||
|
namespace action
|
||||||
|
{
|
||||||
|
// 创建相对位移动画
|
||||||
|
ActionMoveBy* MoveBy(
|
||||||
|
double duration, /* 动画持续时长 */
|
||||||
|
Vector vector /* 位移向量 */
|
||||||
|
);
|
||||||
|
|
||||||
|
// 创建位移动画
|
||||||
|
ActionMoveTo* MoveTo(
|
||||||
|
double duration, /* 动画持续时长 */
|
||||||
|
Point pos /* 位移至目标点的坐标 */
|
||||||
|
);
|
||||||
|
|
||||||
|
// 创建相对缩放动画
|
||||||
|
ActionScaleBy* ScaleBy(
|
||||||
|
double duration, /* 动画持续时长 */
|
||||||
|
double scale /* 缩放比例变化 */
|
||||||
|
);
|
||||||
|
|
||||||
|
// 创建相对缩放动画
|
||||||
|
ActionScaleBy* ScaleBy(
|
||||||
|
double duration, /* 动画持续时长 */
|
||||||
|
double scaleX, /* 横向缩放比例变化 */
|
||||||
|
double scaleY /* 纵向缩放比例变化 */
|
||||||
|
);
|
||||||
|
|
||||||
|
// 创建缩放动画
|
||||||
|
ActionScaleTo* ScaleTo(
|
||||||
|
double duration, /* 动画持续时长 */
|
||||||
|
double scale /* 缩放至目标比例 */
|
||||||
|
);
|
||||||
|
|
||||||
|
// 创建缩放动画
|
||||||
|
ActionScaleTo* ScaleTo(
|
||||||
|
double duration, /* 动画持续时长 */
|
||||||
|
double scaleX, /* 横向缩放至目标比例 */
|
||||||
|
double scaleY /* 纵向缩放至目标比例 */
|
||||||
|
);
|
||||||
|
|
||||||
|
// 创建透明度相对渐变动画
|
||||||
|
ActionOpacityBy* OpacityBy(
|
||||||
|
double duration, /* 动画持续时长 */
|
||||||
|
double opacity /* 透明度相对变化值 */
|
||||||
|
);
|
||||||
|
|
||||||
|
// 创建透明度渐变动画
|
||||||
|
ActionOpacityTo* OpacityTo(
|
||||||
|
double duration, /* 动画持续时长 */
|
||||||
|
double opacity /* 透明度渐变至目标值 */
|
||||||
|
);
|
||||||
|
|
||||||
|
// 创建淡入动画
|
||||||
|
ActionFadeIn* FadeIn(
|
||||||
|
double duration /* 动画持续时长 */
|
||||||
|
);
|
||||||
|
|
||||||
|
// 创建淡出动画
|
||||||
|
ActionFadeOut* FadeOut(
|
||||||
|
double duration /* 动画持续时长 */
|
||||||
|
);
|
||||||
|
|
||||||
|
// 创建相对旋转动画
|
||||||
|
ActionRotateBy* RotateBy(
|
||||||
|
double duration, /* 动画持续时长 */
|
||||||
|
double rotation /* 旋转角度变化值 */
|
||||||
|
);
|
||||||
|
|
||||||
|
// 创建旋转动画
|
||||||
|
ActionRotateTo* RotateTo(
|
||||||
|
double duration, /* 动画持续时长 */
|
||||||
|
double rotation /* 旋转角度至目标值 */
|
||||||
|
);
|
||||||
|
|
||||||
|
// 创建两个动作的连续动作
|
||||||
|
ActionTwo* Two(
|
||||||
|
Action * pActionFirst, /* 第一个动作 */
|
||||||
|
Action * pActionSecond, /* 第二个动作 */
|
||||||
|
bool bAtSameTime = false /* 同时开始 */
|
||||||
|
);
|
||||||
|
|
||||||
|
// 创建顺序动作
|
||||||
|
ActionSequence* Sequence(
|
||||||
|
int number, /* 顺序动作数量 */
|
||||||
|
Action * action1, /* 第一个动作 */
|
||||||
|
...
|
||||||
|
);
|
||||||
|
|
||||||
|
// 创建延时动作
|
||||||
|
ActionDelay* Delay(
|
||||||
|
double duration /* 延迟时长(秒) */
|
||||||
|
);
|
||||||
|
|
||||||
|
// 创建循环动作
|
||||||
|
ActionLoop* Loop(
|
||||||
|
Action * action, /* 执行循环的动作 */
|
||||||
|
int times = -1 /* 循环次数 */
|
||||||
|
);
|
||||||
|
|
||||||
|
// 创建特定帧间隔的帧动画
|
||||||
|
Animation* Animate(
|
||||||
|
double interval, /* 帧间隔(秒) */
|
||||||
|
int number, /* 帧数量 */
|
||||||
|
Image * frame, /* 第一帧 */
|
||||||
|
...
|
||||||
|
);
|
||||||
|
|
||||||
|
// 创建执行回调函数的动作
|
||||||
|
ActionCallback* Callback(
|
||||||
|
VoidFunction callback /* 回调函数 */
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue