animationblender.h

来自「DirectX群共享的好东西啊 ! 希望能对你有帮助」· C头文件 代码 · 共 42 行

H
42
字号
#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 + =
减小字号Ctrl + -
显示快捷键?