【转】Itween 贝塞尔曲线(一)

原地址:点击打开链接

1.回调函数

 

回调函数,即当动画完成时那瞬间需要执行一次的一个函数,it中默认有一个onComplete函数,当动画完成时会自动执行,且你可以提供需要传递的一些参数。见如下代码:

 

  1. private var tweenTarget : GameObject;
  2. var counter : GUIText;
  3. var count : int =0;
  4. function Start(){
  5. tweenTarget=gameObject;
  6. roll("right");//开始执行
  7. counter.guiText.material.color = Color.black;
  8. }
  9. private function roll(direction: String): void{
  10. switch(direction){
  11. //如果向右移
  12. case "right":
  13. iTween.rotateBy(tweenTarget,{"z":-.5});//旋转
  14. iTween.moveTo(tweenTarget,{"x":1.7, "onComplete":"roll","onCompleteParams":"left"});//移动到   当完成动画时执行onComplete 并且传递一个参数left
  15. //也即相当于又这样调用了一次roll("left"); 可以推测到  当动画完成向右之后 又开始向左了
  16. count+=1;
  17. break;
  18. //如果向左移   同上 当完成向左动画 则又开始向右  如此实现"乒乓"效果
  19. case "left":
  20. iTween.rotateBy(tweenTarget,{"z":1});
  21. iTween.moveTo(tweenTarget,{"x":-1.7, "onComplete":"roll","onCompleteParams":"right"});
  22. count+=1;
  23. break;
  24. }
  25. counter.text=count.ToString() + " Loops";
  26. }
复制代码

 

2.Bezier贝塞尔曲线运动

 

除了普通的线性运动 如MoveTo这些函数 it也支持曲线运动  其中一种常用的曲线就是bezier

 

在it中如何使用曲线:

 

  1. function Start()
  2. {
  3. iTween.moveToBezier(gameObject,{"time":3, "transition":"easeInOutQuint","bezier":[Vector3(0,1.5,0), Vector3(0,0,1.5), Vector3(0,-1.5,3), Vector3(1.5,0,3),Vector3(1.5,0,0), Vector3(-1.5,0,0)]});
  4. }
复制代码

 

可以看到,让物体跟随曲线运动。第一个参数指定当前物体运动,接下来是过渡方式:easeInOut 是一种起点和终点平滑过渡的方式。

 

共指定了6个向量点,需要记住参数是成双的即每个定点需要匹配一个控制点,才能定义好这条曲线。上面共有3个顶点,加3个这些定点的控制点。

posted on 2017-05-22 10:52  mimime  阅读(578)  评论(0编辑  收藏  举报