LibGDX游戏引擎-12-动作Action类的运用

qsuron 发布于 2014-04-24 libGDX框架 55 次阅读 1 评论 2282 字 预计阅读时间: 10 分钟


二、控制

  
不同的表现类通过组合实现,我们就可以得到不同的动画效果,当然了,这就需要我们使用控制类来管理我们的表现类,控制类相对于表现类来说比较少,只有四个,即:Sequence 类、Repeat 类、Parallel 类、Forever 类。

(1) SequenceAction 类:按顺序执行Actions

功能用途:sequence(Action action1, Action action2, Action action3, .....) 
SequenceAction alpha = Actions.sequence(Actions.fadeIn(duration), endAction );
参数传入的都是需要使用的Action,sequence他会按照传入的参数顺序,全部按顺序执行的。
  

(2) ParallelAction 类:并行执行传入的Action类

  
功能用途:parallel(Action action1, Action action2, Action action3) 
ParallelAction Paction = Actions.parallel(moveto,  rotateto, alpha);
无论传入的先后如何,都是并行执行的,即同时执行的。

(3) RepeatAction 重复执行传入的Action。

  
功能用途:repeat(int count, Action repeatedAction) 
RepeatAction repeatedAction = Actions.repeat(3, Paction);
第一个参数是重复执行的次数,第二个是执行的Action。

(4) foreverAction 其实这个也是一个RepeateAction,只不过他的次数是无穷的,他所需要传入的是一个RepeatAction。

 
功能用途:forever(Action repeatedAction)  
RepeatAction foreverAction = Actions.forever(RepeatAction);

传入的是一个重复Action,次数是无穷的,当时他的类型也是一个重复Action。

三、Run方法

所有Actions结束后,调用该方法,需要传入Runnable的一个方法。

这里为什么要单独拿出来一个Actions中的方法,单独解释呢?主要是因为这个方法很特别,他虽然也是是一个Action类,但是却封装在了Action类中,表面上看起来很另类,但是其实他是作者的一种经典思维的体现,那么下面我们就来学习下,这个Run方法。
  
功能用途:run(java.lang.Runnable runnable)
需要传入一个Runnnable的参数,同时需要重写Run方法,他是唯一一个不同于其他封装在Action里面的方法。
Action endAction = Actions.run(new Runnable() {
          @Override
          public void run() {
              System.out.println("All action is completed");
          }
      });
这个方法,他的用途就是在于,他是负责在所有动作结束后调用的,一般我们做游戏,在所有的动作结束后,需要执行一些我们想要的事件,例如弹出游戏结束的界面,或者一个窗口等等,这样我们就需要使用run方法,来实现这些功能,这也是0.98版本libgdx的一个改进,他删除了之前的compelet的一个接口,而使用了一二润方法,这样很简便,实用。

文章内容参考-奋斗小土豆丶的博文,特此说明!