📄 animationblender.h
字号:
#pragma once
#ifndef AnimationBlender_Incl
#define AnimationBlender_Incl
#include <Ogre.h>
using namespace Ogre;
class AnimationBlender
{
public:
enum BlendingTransition //不同的混合方式
{
BlendSwitch, // 直接切换到目标动画
BlendWhileAnimating, // 交叉淡入淡出(源动画比例缩小,同时目标动画比例增大)
BlendThenAnimate // 淡出源动画到目标动画第一帧,然后开始目标动画
};
private:
Entity *mEntity;
AnimationState *mSource;
AnimationState *mTarget;
BlendingTransition mTransition;
bool loop; //是否循环
~AnimationBlender() {}
public:
Real mTimeleft, mDuration; //持续时间
bool complete;
void blend( const String &animation, BlendingTransition transition, Real duration, bool l );
void addTime( Real );
Real getProgress() { return mTimeleft/ mDuration; }
AnimationState *getSource() { return mSource; }
AnimationState *getTarget() { return mTarget; }
AnimationBlender( Entity *);
void init( const String &animation );
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -