Flash与3D编程探秘(五)- 摄像机旋转和移动
2008-11-12 11:51:23 来源:WEB开发网5. 写一个循环函数,在每一次执行时,递增摄像机的角度,并且刷新舞台上的所有的物体。
functionrun(e:Event)
{
camera.panning+=0.01; //increasethepanningangle
if(camera.panning>2*PI)
camera.panning-=2*PI;
if(camera.panning<-1*2*PI)
camera.panning+=2*PI;
for(vari=0;i<scene.numChildren;i++) //updatealltheballsonthescreen
{
update(scene.getChildAt(i));
}
}
//addloopeventlistener
this.addEventListener(Event.ENTER_FRAME,run);
注意:
这里我们提到的旋转,都是在保持y不变的情况下,横向旋转摄像机,换句话说,让我们的摄像机绕着y轴旋转,当然同理我们可以写出摄像机围绕着x轴旋转的操作。另外,同时进行上述两种旋转我将在后面的文章里进行介绍。
移动和旋转的组合
那 么现在你已经知道如何横向旋转摄像机,并且前几篇文章中也已经介绍了如何移动摄像机,如果我们把这两个操作结合在一起,那一定很棒。我想你应该觉得不会很 困难,因为我们前面已经把两个分开操作学会了,下面我们所要做的只是把这两种操作组合在一起。来看一个动画,其中发灰的摄像机是运动前的位置,另外一个是 向后(沿摄像机镜头的反方向)移动后位置(当摄像机镜头垂直向上看得时候移动得到),从动画中可以看到,对于摄像机镜头来说,景物的位置是不一样的。
移动加旋转摄像机
再来看一个图例,在这个图片中,摄像机沿BO方向向后移动,我们可以看出,摄像机的转角是不变的。那么我们就可以结合摄像机移动的位置和三角函数就可以算出它的x移动量(图中红色实线)和y移动量(图中蓝色实线),进而我们便可以算出对于移动后摄像机而言,小P的x和y。
- ››FLASH不等于运算符!=的使用实例
- ››FLASH不全等运算符!==
- ››FLASH字符串分隔符运算符
- ››FLASH% 模运算符
- ››Flash+、++、+= 加法运算符
- ››Flash, 逗号运算符
- ››flash中的-、--、-=减法运算符
- ››Flash的-Infinity 常数、.点运算符、/ 除法运算符...
- ››Flash两种注释方法/*..*/ 和// 注释行分隔符运算符...
- ››Flash的/=除法赋值运算符、=赋值运算符、== 等于运...
- ››Flash之?: 条件运算符、^ 按位 XOR 运算符、^= 按...
- ››Flash的_framesloaded代码示例
更多精彩
赞助商链接