WEB开发网
开发学院图形图像Flash Flash与3D编程探秘(三)- 摄像机(Camera) 阅读

Flash与3D编程探秘(三)- 摄像机(Camera)

 2008-11-12 11:47:19 来源:WEB开发网   
核心提示: 7. 接下来我们要写一个函数,每一次我们执行这个函数,Flash与3D编程探秘(三)- 摄像机(Camera)(5),首先把赛车在z方向移动一定量(赛车相对地面是运动的),然后计算比率,所以这里我们不改变它们的xyz值,只有在轮胎已经到了摄像机后面(轮胎的z小于摄像机的z),把赛车移动到相

7. 接下来我们要写一个函数,每一次我们执行这个函数,首先把赛车在z方向移动一定量(赛车相对地面是运动的),然后计算比率,把赛车移动到相应的位置并且缩放。我把它命名updateCar,还是运用摄像机的理论。分别计算出摄像机与小车的xyz距离,然后把小车缩放和移动。注意小车如果离摄像机太远或者被甩到摄像机的后面的话,我们可以让它不在屏幕上显示。

//foreachoftherunningcycle,thesetwofunctionsarecalled
functionupdateCar(car)
{
  varx=car.x_3d-camera.x;       //calculatethexdistancebetweenyourcameraandcar
  vary=car.y_3d-camera.y;      //samewecanydistance
  varz=car.z_3d-camera.z;      //andzdistance
  
  if(z<0||z>10000)          //ifcaristoofarorleftbehind
    car.visible=false;          //thendonotdrawit
  else
    car.visible=true;
    
  car.z_3d+=car.speed_z;       //movethecar
  z=car.z_3d-camera.z;        //recaculatethezdistance
  
  varscale=focal_length/(focal_length+z);   //caculatethescalewhatthecarshouldbe
  car.x=x*scale;
  car.y=y*scale;
  car.scaleX=car.scaleY=scale;  //scaleittoapropersize
}

8. 轮胎的更新函数updateTire和赛车的更新函数类似,不同的是,轮胎相对地面是静止的,所以这里我们不改变它们的xyz值。只有在轮胎已经到了摄像机后面(轮胎的z小于摄像机的z),我们把这个轮胎重新定位到摄像机前非常远的地方。

上一页  1 2 3 4 5 6 7 8  下一页

Tags:Flash 编程 探秘

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接