libGDX的动作类
来源:互联网 发布:手机淘宝店招怎么还原 编辑:程序博客网 时间:2024/05/10 04:41
转载的链接:http://blog.sina.com.cn/s/blog_940dd50a0101d0ho.html
1.表现类
表现类就是libgdx中专门负责演员的各种动作的类,其中包括旋转、放缩、移动、淡入、淡出、延迟等动作,是属于基础的动作,其实也可以是作为一些简单的动画理解,下面我们就来针对这个些不同的效果来简单学习下。
这里特别强调一下,Actions中所有的动作都是静态的,这是其实是一种简单的JAVA设计模式,这些动作我们调用就可以了,不需要实例化,只需要赋值就可以了。
(1)AlphaAction 类
API定义:一个负责改变演员的透明度的类。
功能用法:第一个传入一个要达到的透明度的值,一般是0 - 1 的一个数值,第二个是达到时间,即经过多少时间达到指定的透明度。
alpha(float a, float duration)
示例代码: AlphaAction alphah = Actions.alpha(0.6f, 20);
(2)ColorAction 类
API定义:一个负责改变演员的颜色的类。
功能用法: 第一个传入一个要达到的颜色的值,一般是Color 类型,第二个是达到时间,即经过多少时间达到指定的颜色。
color(Color color, float duration)
示例代码: ColorAction color = Actions.color(Color.RED, 20);
(3)DelayAction 类
API定义:一个负责延迟执行演员动作的类。
功能用法: 第一个传入一个要延迟执行的时间,一般是float 类型。
delay(float duration)
示例代码: DelayAction delay = Actions.delay(20.0f);
(4)fade in / fade out 效果
API定义:一个通过在固定的时间内改变演员的透明度,同时实现淡入淡出类,这个其实是AlphaAction的一个特殊情况。
功能用法: 在传入的时间内,透明度从初始值达到 1 ,这样实现淡入的效果。
fadeIn(float duration)
fadeOut(float duration)
示例代码: AlphaAction alpha = Actions.fadeIn(duration);
(5)MoveToAction 类
API定义:一个负责改变演员的位置的类。
功能用法: 前2个需要传入一个要达到的坐标值,第二个是达到时间,即经过多少时间达到指定的坐标。
moveTo(float x, float y, float duration)
示例代码: 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大小的效果。
功能用法: 第一个需要传入一个演员X轴要达到的放缩比例,第二个是Y轴达到放缩的比例,第三个是经过多少时间达到指定的放缩比例。
scaleTo(float x,
float y,float duration)
示例代码: 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, rotateto, alpha);
(3) RepeatAction 类
API定义:重复执行传入的Action。
功能用途: 第一个参数是重复执行的次数,第二
repeat(int count, Action repeatedAction)
个是执行的Action。
实例代码:
RepeatAction repeatedAction = Actions.repeat(3, Paction);
(4) foreverAction 类
API定义:其实这个也是一个RepeateAction,只不过他的次数是无穷的,他所需要传入的是一个RepeatAction。
功能用途: 传入的是一个重复Action,次数是无穷的,当时他的类
forever(Action repeatedAction)
型也是一个重复Action。
实例代码:
RepeatAction forever Action = Actions.forever(RepeatAction);
以上就是控制类的一些方法,其实他们也是Action,只不过负责的不同而已。当然Actions也是有子类的,我们在下面的例子中也给大家讲解下。
3.Run方法
这里为什么要单独拿出来一个Actions中的方法,单独解释呢?主要是因为这个方法很特别,他虽然也是是一个Action类,但是却封装在了Action类中,表面上看起来很另类,但是其实他是作者的一种经典思维的体现,那么下面我们就来学习下,这个Run方法。
API定义:所有Actions结束后,调用该方法,需要传入Runnable的一个方法。
功能用途:需要传入一个RUnnnable的参数,同时需要重写Run
run(java.lang.Runnable runnable)
方法,他是唯一一个不同于其他封装在Action里面的方法。
示例代码:Action endAction = Actions.run(new Runnable() {
这个方法,他的用途就是在于,他是负责在所有动作结束后,调用的,一般我们做游戏,在所有的动作结束后,需要执行一些我们想要的事件,例如弹出游戏结束的界面,或者一个窗口等等,这样我们就需要使用run方法,来实现这些功能,这也是0.98版本libgdx的一个改进,他删除了之前的compelet的一个接口,而使用了一二润方法,这样很简便,实用。
4.实例演示
1.游戏素材
(1)星星 圆球(白色的可能看不清)
2.功能分析
(1)设计一个滑屏可以出现星星和圆球效果的项目。
(2)星星和圆球可以实现旋转、移动、淡入淡出效果。
(3)所有动作结束后,打印一句话,解释动作结束后,执行的动作。
3.创建舞台,实例化需要用的纹理图片,同时实现输入接口,来处理触屏事件。
如图:
4.创建一个实例化星星和圆球的方法,同时将Action加入到Image中,image也是一个Actor,大家知道的,同时设置位置。
如图:
5.建立setAction,加入动作,同时设置动作播放顺序。
5.建立setAction,加入动作,同时设置动作播放顺序。
如图:
6.给演员加入动作,3个动作是不同的,同时渲染。
如图:
7.实现滑屏生成演员,同时演员实现设置的效果。
如图:
0 0
- libGDX的动作类
- Libgdx 之Actions 动作类
- [ Libgdx 学习笔记 ] - Action 动作类与 Actions(管理类,动作池) [待更新]
- [ Libgdx 学习笔记 ] - Action 动作类与 Actions(管理类,动作池)
- libgdx动作轨迹再次分析
- Libgdx专题系列:对象篇 Action动作
- 动作类的生命周期
- Struts的动作类
- 【cocos2d-x】动作类之缓冲动作和组合动作的使用(变速动作)
- libGDX——舞台类的使用
- (libgdx小结)演员类的使用
- libgdx: fadeIn和fadeOut 动作 - 导致屏幕闪烁
- Cocos2d-x 动作之动作原理——动作类的结构
- 唉 我的libgdx
- Libgdx TexturePacker的使用
- Libgdx Skin的使用
- libgdx进度条的使用
- LibGdx--TexturePacker的使用
- centos 7 连接 xshell5
- Git使用方法
- Swift基础之集成单选按钮横竖两种样式
- RxCache使用教程
- 网站大访问量问题
- libGDX的动作类
- android -- dp与pix
- 支付宝APP支付 显示 系统繁忙 请稍后再试 ALI40247
- Python类的特殊成员5
- 局域网共享
- 开始写博客了
- bzoj 2209: [Jsoi2011]括号序列(splay)
- C++汉诺塔
- ArrayIndexOutOfBoundsException:26