试图制造碰撞

Trying to create collisions

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 的新手,所以我不确定该怎么做。谢谢!!

您没有按需要循环数组。它应该看起来更像这样:

for (var i: int = 0; i < Walls.length; i++){
    // code for collision detection against Walls[i]
}

该代码将循环遍历该数组中的项目,检查每个项目的碰撞。

此外,您的 if 括号中的语句完全错误。应该是:

if (condition){
    // code
}

condition 替换为您想要的任何内容(如 KeemStar1.hitTestObject(Walls[i]))并将 //code 替换为条件为真时应该发生的情况。

你应该学会缩进正确的数量并摆脱所有疯狂的白色 space。这使得它几乎无法阅读。我不得不仔细检查并更正你的缩进和白色 space 多余部分,才意识到你的括号错了。