去除TransitionFade的两参数构造函数

This commit is contained in:
Nomango 2018-05-22 12:59:49 +08:00
parent 24bf8e007a
commit 7920099161
2 changed files with 21 additions and 55 deletions

View File

@ -2,53 +2,28 @@
#include "..\e2dnode.h"
e2d::TransitionFade::TransitionFade(double duration)
: Transition(0)
, _fadeOutDuration(max(duration / 2, 0))
, _fadeInDuration(max(duration / 2, 0))
, _fadeOutTransioning(true)
{
}
e2d::TransitionFade::TransitionFade(double fadeOutDuration, double fadeInDuration)
: Transition(0)
, _fadeOutDuration(max(fadeOutDuration, 0))
, _fadeInDuration(max(fadeInDuration, 0))
, _fadeOutTransioning(true)
: Transition(duration)
{
}
void e2d::TransitionFade::_init(Scene * prev, Scene * next)
{
Transition::_init(prev, next);
if (_outScene)
{
_fadeOutTransioning = true;
_duration = _fadeOutDuration;
}
else
{
_fadeOutTransioning = false;
_duration = _fadeInDuration;
}
_outLayerParam.opacity = 1;
_inLayerParam.opacity = 0;
}
void e2d::TransitionFade::_updateCustom()
{
if (_fadeOutTransioning)
if (_delta < 0.5)
{
_outLayerParam.opacity = float(1 - _delta);
if (_delta >= 1)
{
_fadeOutTransioning = false;
_duration = _fadeInDuration;
_last = Time::getTotalTime();
}
_outLayerParam.opacity = 1 - float(_delta) * 2;
_inLayerParam.opacity = 0;
}
else
{
_inLayerParam.opacity = float(_delta);
_outLayerParam.opacity = 0;
_inLayerParam.opacity = float(_delta - 0.5) * 2;
if (_delta >= 1)
{
this->_stop();

View File

@ -8,7 +8,7 @@ namespace e2d
class SceneManager;
// 基础过渡动作
// 场景过渡
class Transition :
public Object
{
@ -19,32 +19,32 @@ public:
virtual ~Transition();
// 场景切换动作是否结束
// 场景过渡动画是否结束
bool isDone();
// Ïú»Ù¶ÔÏó
virtual void onDestroy() override;
protected:
// 初始化场景动作
// 初始化场景过渡动画
virtual void _init(
Scene * prev,
Scene * next
);
// 更新场景动作
// 更新场景过渡动画
virtual void _update();
// 更新场景动作
// 更新场景过渡动画
virtual void _updateCustom() = 0;
// 渲染场景动作
// 渲染场景过渡动画
virtual void _render();
// 重置场景动作
// 重置场景过渡动画
virtual void _reset() = 0;
// 停止场景动作
// 停止场景过渡动画
virtual void _stop();
protected:
@ -62,21 +62,17 @@ protected:
};
// 渐变过渡
class TransitionFade :
public Transition
{
public:
TransitionFade(
double duration /* 动作持续时长 */
);
TransitionFade(
double fadeOutDuration, /* 前一场景淡出动作持续时长 */
double fadeInDuration /* 后一场景淡入动作持续时长 */
double duration /* 动画持续时长 */
);
protected:
// 更新动
// 更新动画
virtual void _updateCustom() override;
virtual void _init(
@ -85,11 +81,6 @@ protected:
) override;
virtual void _reset() override;
protected:
double _fadeOutDuration;
double _fadeInDuration;
bool _fadeOutTransioning;
};
@ -98,11 +89,11 @@ class TransitionEmerge :
{
public:
TransitionEmerge(
double duration /* 浮现动持续时长 */
double duration /* 浮现动持续时长 */
);
protected:
// 更新动
// 更新动
virtual void _updateCustom() override;
virtual void _init(
@ -119,12 +110,12 @@ class TransitionMove :
{
public:
TransitionMove(
double moveDuration, /* 场景移动动持续时长 */
double moveDuration, /* 场景移动动持续时长 */
Direction direction = Direction::LEFT /* ³¡¾°Òƶ¯·½Ïò */
);
protected:
// 更新动
// 更新动
virtual void _updateCustom() override;
virtual void _init(