WEB开发网
开发学院图形图像Flash Flash与3D编程探秘(五)- 摄像机旋转和移动 阅读

Flash与3D编程探秘(五)- 摄像机旋转和移动

 2008-11-12 11:51:23 来源:WEB开发网   
核心提示: 3. 写一个循环函数,在每一次执行时刷新舞台上的所有的物体,Flash与3D编程探秘(五)- 摄像机旋转和移动(6),functionrun(e:Event){if(camera.panning>2*PI)camera.panning-=2*PI;if(camera.panning&

3. 写一个循环函数,在每一次执行时刷新舞台上的所有的物体。

functionrun(e:Event)
{
  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
  {
    display(scene.getChildAt(i));
  }
}

4. 下面设置一些键盘相应事件,使用WS我们可以使摄像机前进和后退,AD旋转我们的摄像机。键盘事件我们在前面提到过,就不多说了,如果有什么问题的话可以查看一下前面的例子。

functionrun(e:Event)
{
  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
  {
    display(scene.getChildAt(i));
  }
}
functionkey_down(e:KeyboardEvent):void
{
  if(e.keyCode==65)
    pan_left=true;
  if(e.keyCode==68)
    pan_right=true;
  if(e.keyCode==87)
    move_forward=true;
  if(e.keyCode==83)
    move_backward=true;
}
functionkey_up(e:KeyboardEvent):void
{
  if(e.keyCode==65)
    pan_left=false;
  if(e.keyCode==68)
    pan_right=false;
  if(e.keyCode==87)
    move_forward=false;
  if(e.keyCode==83)
    move_backward=false;
}
functionkey_response(e:Event):void
{
  if(pan_left)
    camera.panning+=0.015;          //increasethepanningangle
  if(pan_right)
    camera.panning-=0.015;          //decreasethepanningangle
  if(move_forward)
  {
    movement=20;
  }
  if(move_backward)
  {
    movement=-20;
  }
  if(move_forward||move_backward)
  {
    camera.x+=Math.sin(camera.panning)*movement;
    camera.z+=Math.cos(camera.panning)*movement;
  }
}
//addloopeventlistener
this.addEventListener(Event.ENTER_FRAME,run);
this.addEventListener(Event.ENTER_FRAME,key_response);
stage.addEventListener(KeyboardEvent.KEY_DOWN,key_down);
stage.addEventListener(KeyboardEvent.KEY_UP,key_up);

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

Tags:Flash 编程 探秘

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