Actionscript 3 摄像机跟踪物体

Actionscript 3 摄像机跟踪物体,actionscript-3,camera,flash-cs5,Actionscript 3,Camera,Flash Cs5,我对编码相当陌生。我想知道是否有一种方法,当我用键移动我的对象时,我可以让相机保持在我的对象上,这样我就可以在一个比我的视口更大的世界中移动 我试着去移动世界而不是我的对象,但是对于我正在做的事情来说,这使得我的编码更加困难 这是我的密码 stage.addEventListener(KeyboardEvent.KEY_DOWN, keydown ); function keydown (event:KeyboardEvent):void{ switch (event.keyCode){

我对编码相当陌生。我想知道是否有一种方法,当我用键移动我的对象时,我可以让相机保持在我的对象上,这样我就可以在一个比我的视口更大的世界中移动

我试着去移动世界而不是我的对象,但是对于我正在做的事情来说,这使得我的编码更加困难

这是我的密码

stage.addEventListener(KeyboardEvent.KEY_DOWN, keydown );

function keydown (event:KeyboardEvent):void{

  switch (event.keyCode){

    case Keyboard.LEFT :
    ball.x -= 10;
    break ;

    case Keyboard.RIGHT :
    ball.x += 10;
    break;

    case Keyboard.UP :
    ball.y -= 10;
    break;

    case Keyboard.DOWN :
    ball.y += 10;
    break;

    default :
    break;

  }
}

你可以把这个世界和这个角色放在一个小精灵/电影里

然后,在移动角色时,可以设置支架在相反方向上的位置

您可以使用“全局到局部”来获取球的位置,然后甚至可以应用一些运动平滑


这里有一些代码应该足够简单

您需要一个名为
holder
的movieclip,里面是
ball
,该holder还将拥有您的世界和世界资产。只要不进行缩放,您就不需要使用
globalToLocal

var middlePt:Point = new Point(stage.stageWidth/2, stage.stageHeight/2);
var pt:Point = new Point(holder.ball.x, holder.ball.y);
var destPoint:Point = new Point(-pt.x + middlePt.x,  -pt.y + middlePt.y);

addEventListener(Event.ENTER_FRAME,enterFrame);
function enterFrame(e:Event):void{
    holder.x = holder.x*0.5 + destPoint.x*0.5;
    holder.y = holder.y*0.5 + destPoint.y*0.5;
}


stage.addEventListener(KeyboardEvent.KEY_DOWN, keydown );

function keydown (event:KeyboardEvent):void{
  switch (event.keyCode){

    case Keyboard.LEFT :
    holder.ball.x -= 10;
    break ;

    case Keyboard.RIGHT :
    holder.ball.x += 10;
    break;

    case Keyboard.UP :
    holder.ball.y -= 10;
    break;

    case Keyboard.DOWN :
    holder.ball.y += 10;
    break;

    default :
    break;

  }
    middlePt = new Point(stage.stageWidth/2, stage.stageHeight/2);
    pt = new Point(holder.ball.x, holder.ball.y);
    destPoint = new Point(-pt.x + middlePt.x,  -pt.y + middlePt.y);
}

谢谢,是他们的,你能给我举个例子吗?我对这个很陌生。