Flash与3D编程探秘(六)- 全方位旋转摄像机
2008-11-12 11:51:10 来源:WEB开发网//constants
varMAX_OBJ= 6;
varPI=3.1415926535897932384626433832795;
varCUBE_WIDTH=300;
2. 下面还是设置原点,场景,焦距等。
//sameasusual
varorigin=newObject();
origin.x=stage.stageWidth/2;
origin.y=stage.stageHeight/2;
origin.z=0;
varscene=newSprite();
scene.x=origin.x;
scene.y=origin.y;
this.addChild(scene);
varfocal_length= 400;
3. 设置摄像机,这回我们的摄像机多了几个新的属性,pitching是纵向旋转角度,tilt是倾斜的角度。
varcamera=newObject();
camera.x=0;
camera.y=0;
camera.z=0;
camera.panning=-PI/8; //initpanangleofourcamera,panleft
camera.pitching=-PI/8; //pitchup
camera.tilt=0; //andnotilt
4. 设置一些全局变量,在我们处理键盘和鼠标事件时会用到。
//globalbooleansforourkeyboardcontrol
varpan_left;
varpan_right;
varpitch_up;
varpitch_down;
varmouse_ctl=true;
5. 下面我们步置一个正方体,你完全不必要明白我是怎么布置场景的,因为布置场景的方式并不唯一,所以如果你愿意的话,你可以自己动手布置3D场景,当然我也不介意直接拷贝我的设置场景的代码去用。总之,这些代码就是初始化一些小P,然后把它们摆放在合适位置(围绕着我们的摄像机)。
//ok,hereyoudon'thavetoknowhowiacutallysetupthecube
//causeeverybodyhasadifferentwayofdoingthat,ifyoureally
//interestedinhowididit,thenyoumayhavealook
//youcanjustcopymycodeanditwillsetitupforyou
varlen=CUBE_WIDTH/2;
for(varseg=0;seg<3;seg++)
{
varline_h;
varline_v;
varline_z;
switch(seg)
{
case0:
line_h=true;
line_v=false;
line_z=false;
break;
case1:
line_h=false;
line_v=true;
line_z=false;
break;
case2:
line_h=false;
line_v=false;
line_z=true;
break;
}
for(vari=0;i<MAX_OBJ;i++)
{
if(line_h||(i==0||i==MAX_OBJ-1))
{
for(varj=0;j<MAX_OBJ;j++)
{
if(line_v||(j==0||j==MAX_OBJ-1))
{
for(vark=0;k<MAX_OBJ;k++)
{
if(line_z||(k==0||k==MAX_OBJ-1))
{
varball;
if(line_h)
{
ball=newSphereHorizontal();
if((i==0||i==MAX_OBJ-1))
{
ball=newSphereVertex();
}
else
{
ball=newSphereHorizontal();
}
}
if(line_v)
{
ball=newSphereVertical();
if((j==0||j==MAX_OBJ-1))
{
continue;
}
}
if(line_z)
{
ball=newSphereStraight();
if((k==0||k==MAX_OBJ-1))
{
continue;
}
}
ball.x_3d=-len+(i)*(CUBE_WIDTH/MAX_OBJ);
ball.y_3d=-len+(j)*(CUBE_WIDTH/MAX_OBJ);
ball.z_3d=-len+(k)*(CUBE_WIDTH/MAX_OBJ);
scene.addChild(ball);
}
}
}
}
}
}
}
- ››FLASH不等于运算符!=的使用实例
- ››FLASH不全等运算符!==
- ››FLASH字符串分隔符运算符
- ››FLASH% 模运算符
- ››Flash+、++、+= 加法运算符
- ››Flash, 逗号运算符
- ››flash中的-、--、-=减法运算符
- ››Flash的-Infinity 常数、.点运算符、/ 除法运算符...
- ››Flash两种注释方法/*..*/ 和// 注释行分隔符运算符...
- ››Flash的/=除法赋值运算符、=赋值运算符、== 等于运...
- ››Flash之?: 条件运算符、^ 按位 XOR 运算符、^= 按...
- ››Flash的_framesloaded代码示例
更多精彩
赞助商链接