easyx_framework V1.0.0
基于easyx的c++游戏框架
 
载入中...
搜索中...
未找到
Animation类 参考

动画委托(无参单播委托) 更多...

#include <Animator.h>

Public 成员函数

 Animation ()
 绑定时钟
 
void Load (std::string name, Vector2D delta={ 0, 0 })
 加载动画资源.
 
void SetInterval (double interval)
 设置时钟更新索引频率.
 
void SetIndex (int i)
 设置动画帧下标.
 
void Tick_ ()
 时钟执行的函数.
 
void SetLooping (bool loop)
 设置是否循环播放.
 
void AddNotification (int index, AnimationDelegate &event)
 添加动画委托.
 

Public 属性

AnimationDelegate OnAnimEnter
 进入动画事件
 
AnimationDelegate OnAnimExit
 离开动画事件
 

Private 成员函数

void UpdateIndex ()
 

Private 属性

friend AnimEdge
 
AnimatoranimController = nullptr
 由哪个动画播放器播放
 
Vector2D offset = { 0,0 }
 像素偏移量
 
int num = 0
 动画帧数
 
int index = 0
 当前帧索引
 
IMAGE ** images = nullptr
 动画帧数组
 
bool bLooping = true
 是否可循环播放
 
AnimationDelegate OnMontageExit
 结束播放蒙太奇的动画事件
 
bool bMontage = false
 是否处于蒙太奇播放
 
Timer clock
 计时器按照固定频率实现Tick_()
 
std::unordered_map< int, AnimationDelegate > notification
 更新索引
 
std::list< AnimEdge * > nexts
 动画桥
 

友元

class Animator
 
class FsmAnimator
 

详细描述

动画委托(无参单播委托)

类似:class AnimationDelegate:public UniCastDelegate<void>{}; 动画接口.

支持实现蒙太奇动画,需要设置

蒙太奇动画即相当于一个动作,比如一个技能,释放的结束之前不支持之前的其他操作

备注
本身有状态转换判定 更加复杂的AI设计请参考状态机
参见
FSM

构造及析构函数说明

◆ Animation()

Animation::Animation ( )
inline

绑定时钟

成员函数说明

◆ AddNotification()

void Animation::AddNotification ( int index,
AnimationDelegate & event )
inline

添加动画委托.

参数
[in]index下标
[in]event事件

◆ Load()

void Animation::Load ( std::string name,
Vector2D delta = { 0,0 } )

加载动画资源.

参数
[in]name动画名字
[in]delta偏移量

◆ SetIndex()

void Animation::SetIndex ( int i)
inline

设置动画帧下标.

参数
[in]i新下标

◆ SetInterval()

void Animation::SetInterval ( double interval)
inline

设置时钟更新索引频率.

参数
interval动画帧时间间隔

◆ SetLooping()

void Animation::SetLooping ( bool loop)
inline

设置是否循环播放.

参数
[in]loop是否循环播放

◆ Tick_()

void Animation::Tick_ ( )

时钟执行的函数.

备注
实现核心功能

◆ UpdateIndex()

void Animation::UpdateIndex ( )
inlineprivate

友元及相关符号说明

◆ Animator

friend class Animator
friend

◆ FsmAnimator

friend class FsmAnimator
friend

类成员变量说明

◆ animController

Animator* Animation::animController = nullptr
private

由哪个动画播放器播放

◆ AnimEdge

friend Animation::AnimEdge
private

◆ bLooping

bool Animation::bLooping = true
private

是否可循环播放

◆ bMontage

bool Animation::bMontage = false
private

是否处于蒙太奇播放

◆ clock

Timer Animation::clock
private

计时器按照固定频率实现Tick_()

◆ images

IMAGE** Animation::images = nullptr
private

动画帧数组

◆ index

int Animation::index = 0
private

当前帧索引

◆ nexts

std::list<AnimEdge*> Animation::nexts
private

动画桥

◆ notification

std::unordered_map<int, AnimationDelegate> Animation::notification
private

更新索引

自定义动画委托 在某一帧实现委托

◆ num

int Animation::num = 0
private

动画帧数

◆ offset

Vector2D Animation::offset = { 0,0 }
private

像素偏移量

◆ OnAnimEnter

AnimationDelegate Animation::OnAnimEnter

进入动画事件

◆ OnAnimExit

AnimationDelegate Animation::OnAnimExit

离开动画事件

◆ OnMontageExit

AnimationDelegate Animation::OnMontageExit
private

结束播放蒙太奇的动画事件