在opengles2.0中 动画的设计

做了两个动画效果,一个是加速进入 减速退出,另一个是做方波形运动。


界面上有五个按钮 分别是运行动画A,运行动画B,暂停,继续,和停止。


1、分别编程完成动画A和动画B。

2、修改主函数 实现该效果。


原始的主函数 大致为:



此时犯了个错误,动画acc类 和wave类的setInitial中的sample(帧率)并不是固定的,在同一台机子上 也是动态变化。动画走到哪儿 具体得通过计算得出。因此 点击暂停按钮后,不能通过点击继续按键的时间——点击暂停时间,再除以一个固定的帧率,得到走了多少帧。


另外调用类A 与类B流程相似,能抽象。


正确做法:


分别完成类A和类B后,将类A和类B的公共部分提取,编写父类C,类A和类B分别继承父类C。


分别提供四个接口,一是初始化即setInitial,二是暂停接口即onPause,三是继续即onContinue接口,四则是run接口,五 getState。


声明 C c;

在点击A动画的事件中初始化对象c和 进行初始化。


c= new A();


c.setInitial(………);


在按下暂停事件中添加暂停事件的处理方式

if(c != null){

c.onPause();

}


同理 在继续事件中添加:

if(c != null){

c.onContinue

}


这里首先需要先判断c对象是否存在,否则在点击动画A、B前点击暂停和继续按钮会出错。


在onDrawFrame中 则变的更简单。



其中getState是用于判断类A、B中,动画是否播放完毕的接口。当动画播放完毕时,将返回true,否则返回false;



PS:onDrawFrame函数 会被程序不停的调用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值