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을 교체하고 조건이 참일 경우 어떻게해야하는지에 //code를 교체합니다.

올바른 양만큼 들여 쓰기를하고 그 미친 공백을 모두 제거하는 방법을 배워야합니다. 그것은 읽는 것을 거의 불가능하게 만듭니다. 나는 여러분의 들여 쓰기와 공백을 지나치게 교정해야만 여러분이 여러분의 괄호를 잘못 이해했음을 깨닫게되었습니다.

관련 문제