2012-04-19 6 views
0

私はかなり新しいコーディングです。私は方法があるかどうか疑問に思っていました。私はオブジェクトをキーで動かすと、オブジェクトを保持するカメラを取得できるので、私のビューポートより大きな世界を回ることができます。オブジェクトに従うカメラ

私が代わりに私のオブジェクトの周りの世界を移動するために試みたが、私はそれをやっていることは、私はここで多くの困難

をコーディング作るために私が持っているコードです。

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; 

    } 
} 

答えて

1

あなたが保持スプライト/ムービークリップに

を世界とキャラクターを持っている可能性がありますが、文字を移動すると、その後、あなたは反対方向にホルダーの位置を設定することができます。

あなたはボールの位置を取得するために、ローカルにグローバルに使用することができ、その後も、


を滑らかにいくつかの動きを適用することができ、ここであなたが呼ばれるムービークリップを必要と簡単に十分な

を動作するはずですいくつかのコードがありますholderballの場合、所有者には世界と世界の資産もあります。スケーリングがない限り、使用する必要はありません。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); 
} 
+0

ありがとうございます、とにかく私に例を挙げてもらえますか? 私はこれについて非常に新しいです。 – LochyMacleod

+0

コードを追加しました – Daniel

関連する問題