动画是由多个帧,在设置时间内,按照一定的序列进行展示。
1.定义:管理游戏中动画实现的类,实现只需要两个参数,时间:duration,另外则是TextureRegion 即图片。 2.用途:管理动画,设置随即播放模式和播放顺序。 代码:
val animation = Animation (float frameDuration, TextureRegion... keyFrames)
第一个参数是播放每一帧的时间,第二个是图片 动画原理如下:
动画分解
获取关键帧: public TextureRegion getKeyFrame (float stateTime, boolean looping) 1.方法返回的是当前时间,Animation中的TextureRegion图片。 2.第一个是时间,第二个参数,是否循环播放。
播放模式: Animation提供6中播放模式: NORMAL ,REVERSED ,LOOP ,LOOP_REVERSED ,LOOP_PINGPONG,LOOP_RANDOM
NORMAL :正常模式 REVERSED :反向播放 LOOP :循环播放 LOOP_REVERSED :循环反向播放 LOOP_PINGPONG :向前播放几张,再向后播放几张 LOOP_RANDOM
TextureRegion[][] regions = TextureRegion.split (Texture texture, int tileWidth, int tileHeight)
1.类似于一个计时器
2.stateTime += Gdx.graphics.deltaTime
, 它是获取一个状态下所持续的一个时间,就像在现实世界使用的时间。
3.一般配合系统时间使用 Gdx.graphics.deltaTime 获取系统渲染时间,LibGdx中的渲染时间间隔,一般是0.173秒左右。
效果图:
动画效果图
代码:https://gitee.com/xcode_xiao/LibGdxDemos2/tree/master/AnimationDemo