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

 

posted @ 2015-03-15 16:31  鉄弟  阅读(172)  评论(0)    收藏  举报