2016-09-23 3 views
0
var i:int = 0; 
stage.focus=stage; 
var Walls:Array = [Wall,Wall1]; 

addEventListener(Event.ENTER_FRAME,HitDetection); 
function HitDetection(event:Event):void{ 
stage.addEventListener(KeyboardEvent.KEY_DOWN, myKeyDown); 
function myKeyDown(e:KeyboardEvent):void 
{ 
    { 
     if (e.keyCode == Keyboard.LEFT) 
    { 
    if (KeemStar1.hitTestObject(Walls[i])) { 
trace("1") 
    KeemStar1.x -=-0.1; 
     } 
     else 
     { 
      KeemStar1.x -=0.1; 
     } 
    } 
    if (e.keyCode == Keyboard.RIGHT) 
    { 
     { 
     if (KeemStar1.hitTestObject(Walls[i])) { 
      KeemStar1.x -=-0.1; 
trace ("n") 
     } 
     else 
     { 
      KeemStar1.x +=0.1; 
     } 
     } 
    } 
} 
} 
} 

アレイ内のすべての壁ではなく、最初の壁に衝突するだけです。私はすべてを試しましたが、私はそれを理解することができません。私はactionscrip3に新しくなので、何をすべきか分かりません。ありがとう!!衝突を作成しようとしています

答えて

2

必要に応じてループを繰り返しません。

このコードは、配列と同じ数の項目をループし、それぞれの項目との衝突をチェックします。

また、お客様のifステートメントは完全に間違って括弧で囲まれています。次のようになります。

if (condition){ 
    // code 
} 

は(KeemStar1.hitTestObject(Walls[i])のように)あなたが好きでconditionを交換し、条件がtrueの場合はどうするかと//codeを交換してください。

あなたは正しい量をインデントし、その狂った空白をすべて取り除くことを学ぶべきです。それはほとんど読むことが不可能になります。私はあなたの括弧が間違っていたことを理解するために、あなたのインデントと余白を修正しなければなりませんでした。

関連する問題