Animation LibGDX动画中的StateTime

Animation LibGDX动画中的StateTime,animation,libgdx,Animation,Libgdx,如何在LibGDX中使用已实现的动画?我知道,可以找到文档,但是当我想从动画中获得一帧时,我需要使用stateTime,文档中没有解释这一点。所以问题是,就LibGDX的动画而言,stateTime是什么 基于所谓的状态时间返回TextureRegion。这是对象在该动画实例所表示的状态下所花费的秒数,例如跑步、跳跃等 (这个文档对我来说也没有任何意义。) 但是,这本书是可读的。看起来它可以归结为 它将stateTime除以frameDuration(这是构造函数的一个参数——每帧持续的时间)以

如何在LibGDX中使用已实现的动画?我知道,可以找到文档,但是当我想从动画中获得一帧时,我需要使用stateTime,文档中没有解释这一点。所以问题是,就LibGDX的动画而言,stateTime是什么

基于所谓的状态时间返回TextureRegion。这是对象在该动画实例所表示的状态下所花费的秒数,例如跑步、跳跃等

(这个文档对我来说也没有任何意义。)

但是,这本书是可读的。看起来它可以归结为 它将
stateTime
除以
frameDuration
(这是构造函数的一个参数——每帧持续的时间)以计算数组索引
getKeyFrameIndex
对循环或非循环序列执行不同的操作,但基本上需要数组索引来查找序列中要显示的正确关键帧

因此,“stateTime”是从动画中拾取关键帧的输入。文档假设您有一个
动画
实例用于“运行”,另一个用于“跳跃”(这些是它所指的“状态”)。要在
动画中找到正确的关键帧
,您需要告诉它您处于这种“状态”有多长时间。因此,如果您在“running”
动画
实例中运行了1.2秒,它会进行一些数学运算,以确定要显示的关键帧(假设您已使用30帧初始化该实例,显示时间为0.0333秒,然后循环——它会选择第6帧)

wiki提供了更多的细节和示例,但也没有直接解决这个问题。

animationFrames=walkSheetArray[moveDirection];
动画=新动画(1f/5f,动画帧);
myAnimatedActor=新的AnimatedActor(动画);
stage.addActor(myAnimatedActor);
公共类AnimatedActor扩展图像{
私有float stateTime=0;
动画;
公共动画演员(动画){
super(animation.getKeyFrame(0));
这个动画=动画;
}
@凌驾
公共无效法案(浮动三角洲){
((TextureRegionRavable)getDrawable()).setRegion(animation.getKeyFrame(stateTime+=delta,true));
超级法案(德尔塔);
}
}