Jme笔记(CurveController) Jmonkey

Jme里的 update() 方法是在运行中调用的 . 为了显示运动效果 , 就必须对它做文章了 . 一般几十毫秒更新一次 .

 

控制照相机的运动.( 既然可以控制照相机节点 , 那么就可以控制其它类型的节点 )

   用照相机做成照相机节点

   先新建一个三维向量数组. 做成贝塞尔曲线 .

   用曲线和照相机节点新建曲线控制器

   曲线控制器设置成重复的, 还可以设置速度

   在照相机节点中加入曲线控制器

   最后把照相机节点加入场景中即可

照相机是在不断运动中的. 那么视锥就要变化 .

   在update() 方法中控制照相机的视锥 . 包括 up,left,direction.

   Camera direction 要通过照相机的位置和被看物体的中心位置确定 .

   有了direction 后  up  left 就好确定了 .

   不过JME LOD 例子中update()里的方式有些奇怪 !

 

CurveController 例子分析:在这里不用自己调用update()方法.

有了这个,就可以让我的行星运动了

Capsule ca=new Capsule("胶囊",5,30,5,5f,10f);
 node1.attachChild(ca);    //往node1中加上物体
 Vector3f[] points=new Vector3f[]{
			   new Vector3f(3,0,0),
			   new Vector3f(2.5f,0,-2.5f),
			   new Vector3f(0,0,6),
			   new Vector3f(-7,0,0),
			   new Vector3f(-4.5f,4.5f,0),
			   new Vector3f(3,0,0)
	   };  //这个将是物体的运动轨迹点
	   BezierCurve bc=new BezierCurve("objpath",points);
	   //用物体的轨迹和物体创建控制器
	   CurveController cc=new CurveController(bc,node1);
	   cc.setRepeatType(Controller.RT_WRAP);//重复
	   cc.setSpeed(2f);//设置速度
	   node1.addController(cc);//往要控制的物体中加上控制器
       //这里不知咋回事,创建控制器时用到了node1,后又在node1中加上了控制器
       //肯定有解决方案,努力!
	   rootNode.attachChild(node1);

你可能感兴趣的:(编程,UP)