Flash与3D编程探秘(三)- 摄像机(Camera)
2008-11-12 11:47:19 来源:WEB开发网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),我们把这个轮胎重新定位到摄像机前非常远的地方。
- ››FLASH不等于运算符!=的使用实例
- ››FLASH不全等运算符!==
- ››FLASH字符串分隔符运算符
- ››FLASH% 模运算符
- ››Flash+、++、+= 加法运算符
- ››Flash, 逗号运算符
- ››flash中的-、--、-=减法运算符
- ››Flash的-Infinity 常数、.点运算符、/ 除法运算符...
- ››Flash两种注释方法/*..*/ 和// 注释行分隔符运算符...
- ››Flash的/=除法赋值运算符、=赋值运算符、== 等于运...
- ››Flash之?: 条件运算符、^ 按位 XOR 运算符、^= 按...
- ››Flash的_framesloaded代码示例
更多精彩
赞助商链接