4、Animation的学习
嘻嘻,昨天打篮球逛街看电影去(木星上行,3D的,感觉不错,就像是做过山车一样,唰唰的),不扯淡了
今天就学习了Animation类,这个好理解吗,就是动画,帧动画,其实就是和android里面的一样嘛
1、主要有动画的播放模式,setPlayMode(int)
NORMAL:这个不用说了,就是正常的播放模式。
REVERSED:反向播放,从后向前播放,这个就像人物倒退的跑。
LOOP:持续播放,这个比较常用。
LOOP_REVERSED:持续倒退播放。
LOOP_PINGPONG: 向前播放几张图片,再向后播放几帧图片。
2、就是动画的播放时间,说白就是每一帧的播放间隔时间
setFrameDuration(float)
关于实例化使用
new Animation(float frameDuration,TextureRegion[]);
new Animation(float frameDuration, Array<? extends TextureRegion> keyFrames);
偶使用的是下面的这个Arra参数的构造方法,原因吗,图片切割后是一个2维数组,需要便利,所以我就选择array咯,看代码就知道了
不过,有一点需要注意的就是,这个array,不是我们java里面的array里面的而是这个里面的 com.badlogic.gdx.utils.Array;
使用就是这样的,首先,先将图片加载到纹理

Texture tt = new Texture(Gdx.files.internal("img/animation.png"));
static final int AnimationWidth = 4;//这个就是有多少行
static final int AnimationHeight = 1;//这个就是有多少列
//使用TextureRegion建图片切割成功一个二位数组
TextureRegion[][] TR_zoo = TextureRegion.split(tt, tt.getWidth() / AnimationWidth, tt.getHeight() / AnimationHeight);
//将切割出来的图片转成一个1维数组或是一个列表
Array<TextureRegion> A_TR_zooA = new Array<TextureRegion>();
for (TextureRegion[] TRS : TR_zoo) {
A_TR_zooA.addAll(TRS);
}
//接下来就是创建动画
Animation A_zoo = new Animation(0.2f,A_TR_zooA);
A_zoo.setPlayMode(PlayMode.Loop);
播放动画的时候需要注意,需要创建一个变量记录一下
time += Gdx.graphics.getDeltaTime();//这个是获取刷新时间
SB_pen.draw(A_zoo.getKeyFrame(time, true), 0, 0);
今天就这样了,好好学习,记录学习的笔记,加油
2015年3月15日16:31:03

浙公网安备 33010602011771号