libGDX的动作类

来源:互联网 发布:手机淘宝店招怎么还原 编辑:程序博客网 时间:2024/05/10 04:41
转载的链接:http://blog.sina.com.cn/s/blog_940dd50a0101d0ho.html
1.表现类

表现类就是libgdx中专门负责演员的各种动作的类,其中包括旋转、放缩、移动、淡入、淡出、延迟等动作,是属于基础的动作,其实也可以是作为一些简单的动画理解,下面我们就来针对这个些不同的效果来简单学习下。

这里特别强调一下,Actions中所有的动作都是静态的,这是其实是一种简单的JAVA设计模式,这些动作我们调用就可以了,不需要实例化,只需要赋值就可以了。

(1)AlphaAction 类

API定义:一个负责改变演员的透明度的类。

功能用法:alpha(float a, float duration) 第一个传入一个要达到的透明度的值,一般是0 - 1 的一个数值,第二个是达到时间,即经过多少时间达到指定的透明度。

示例代码: AlphaAction alphah = Actions.alpha(0.6f, 20);


(2)ColorAction 类

API定义:一个负责改变演员的颜色的类。

功能用法:color(Color color, float duration)  第一个传入一个要达到的颜色的值,一般是Color 类型,第二个是达到时间,即经过多少时间达到指定的颜色。

示例代码: ColorAction color= Actions.color(Color.RED, 20);


(3)DelayAction 类

API定义:一个负责延迟执行演员动作的类。

功能用法:delay(float duration)   第一个传入一个要延迟执行的时间,一般是float 类型。

示例代码: DelayAction delay = Actions.delay(20.0f);



(4)fade in / fade out 效果

API定义:一个通过在固定的时间内改变演员的透明度,同时实现淡入淡出类,这个其实是AlphaAction的一个特殊情况。

功能用法:fadeIn(float duration)   在传入的时间内,透明度从初始值达到 1 ,这样实现淡入的效果。
        fadeOut(float duration)   在传入的时间内,透明度从初始值达到 0 ,这样实现淡出的效果。

示例代码: AlphaAction alpha = Actions.fadeIn(duration);
          
          AlphaAction alpha = Actions.fadeOut(duration);



(5)MoveToAction 类

API定义:一个负责改变演员的位置的类。

功能用法:moveTo(float x, float y, float duration)  前2个需要传入一个要达到的坐标值,第二个是达到时间,即经过多少时间达到指定的坐标。

示例代码: MoveToAction moveto = Actions.moveTo(240, 160, duration);


(6)RotatoToAction 类

API定义:一个负责实现演员的旋转效果的类。

功能用法:rotateTo(float rotation, float duration)   第一个需要传入一个要旋转的角度,第二个是达到该旋转角度的时间,即经过多少时间达到指定的角度。

示例代码: RotateToAction rotateto = Actions.rotateTo(rotate, duration);


(7)ScaleToAction 类

API定义:一个负责改变演员大小的类,即沿X轴或者Y轴放缩大小,实现改变Actor大小的效果。

功能用法:scaleTo(float x, float y,float duration)   第一个需要传入一个演员X轴要达到的放缩比例,第二个是Y轴达到放缩的比例,第三个是经过多少时间达到指定的放缩比例。

示例代码: ScaleToAction scaleto = Actions.scaleTo(scale, scale, duration);



以上所讲述的七个类,就是基本的表现类,当然在Api中还有一些其他的类,如moveBy、scaleBy等表现类,当然用法基本和上述同名的类一样,这里就不讲解了,估计大家都能理解。上面的就是我们演员常用的表现类,很多动画效果,都是可以通过不同的表现类来组合实现的,当然组和这些类就需要专门的控制类来管理,下面我们就来讲解下控制类。


2.控制

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


(1) SequenceAction 类

API定义:按顺序执行Actions,即按传入的Action参数顺序执行。

功能用途:sequence(Action action1, Action action2, Action action3, .....) 

参数传入的都是需要使用的Action,sequence他会按照传入的参数顺序,全部按顺序执行的。

实例代码: 

SequenceAction alpha = Actions.sequence(Actions.fadeIn(duration), endAction );


(2) ParallelAction 

API定义:并行执行传入的Action类,无论传入顺序如何,都是同时执行Action。

功能用途:parallel(Action action1, Action action2, Action action3) 

无论传入的先后如何,都是并行执行的,即同时执行的。

实例代码:

ParallelAction Paction = Actions.parallel(moveto,  rotatetoalpha);



(3) RepeatAction 

API定义:重复执行传入的Action。

功能用途:repeat(int count, Action repeatedAction)  第一个参数是重复执行的次数,第二

个是执行的Action。

实例代码:

RepeatAction repeatedAction = Actions.repeat(3, Paction);



(4) foreverAction 

API定义:其实这个也是一个RepeateAction,只不过他的次数是无穷的,他所需要传入的是一个RepeatAction。

功能用途:forever(Action repeatedAction)   传入的是一个重复Action,次数是无穷的,当时他的类

型也是一个重复Action。

实例代码:

RepeatAction foreverAction = Actions.forever(RepeatAction);


以上就是控制类的一些方法,其实他们也是Action,只不过负责的不同而已。当然Actions也是有子类的,我们在下面的例子中也给大家讲解下。



3.Run方法


这里为什么要单独拿出来一个Actions中的方法,单独解释呢?主要是因为这个方法很特别,他虽然也是是一个Action类,但是却封装在了Action类中,表面上看起来很另类,但是其实他是作者的一种经典思维的体现,那么下面我们就来学习下,这个Run方法。

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

功能用途: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的一个接口,而使用了一二润方法,这样很简便,实用。



4.实例演示

1.游戏素材 

(1)星星                             圆球(白色的可能看不清)

25.动作类

25.动作类                                

2.功能分析  

(1)设计一个滑屏可以出现星星和圆球效果的项目。

(2)星星和圆球可以实现旋转、移动、淡入淡出效果。

(3)所有动作结束后,打印一句话,解释动作结束后,执行的动作。



3.创建舞台,实例化需要用的纹理图片,同时实现输入接口,来处理触屏事件。


如图:

25.动作类

4.创建一个实例化星星和圆球的方法,同时将Action加入到Image中,image也是一个Actor,大家知道的,同时设置位置。

如图:

25.动作类
5.建立setAction,加入动作,同时设置动作播放顺序。

如图:

25.动作类


6.给演员加入动作,3个动作是不同的,同时渲染。

如图:

25.动作类


7.实现滑屏生成演员,同时演员实现设置的效果。

如图:

25.动作类
0 0
原创粉丝点击