Actionscript 3 如何检查对象位置是否大于对象数组AS3

Actionscript 3 如何检查对象位置是否大于对象数组AS3,actionscript-3,for-loop,position,flashdevelop,Actionscript 3,For Loop,Position,Flashdevelop,大家好,我想知道如何检查一部电影剪辑的x位置,叫做球是否大于一组对象x位置,叫做车。所以我用汽车设置了一个数组汽车的主时间线由4个帧组成,每个帧上都有相同的电影剪辑,只是大小不同,使游戏更难进行 因此,我要做的是检查球何时跳过当前汽车,然后在分数上加1。但我很难找到答案。以下是我到目前为止的情况: 在我的输入帧游戏循环中,我有一个函数checkAddPoints: private function gameLoop(e:Event):void { checkBunnyH

大家好,我想知道如何检查一部电影剪辑的x位置,叫做
是否大于一组对象x位置,叫做
。所以我用
汽车设置了一个数组
汽车的主时间线由4个帧组成,每个帧上都有相同的电影剪辑,只是大小不同,使游戏更难进行

因此,我要做的是检查
何时跳过当前
汽车
,然后在分数上加1。但我很难找到答案。以下是我到目前为止的情况:

在我的输入帧游戏循环中,我有一个函数
checkAddPoints

private function gameLoop(e:Event):void 
    {
        checkBunnyHitObstacles();
        checkAddPoints();
    }
然后函数:

private function checkAddPoints():void 
    {
        for (var i:int = 0; i < aCarArray.length; i++)
        {
            var currentCar:car = aCarArray[i];

            if (ball.x > currentCar.x)
            {
                nScore ++;
                updateCurrentScore();

            }
        }

    }

在车内存储有关奖励状态的标志将有助于完成任务。如果您向汽车添加标志,比如说
car.isAwarded
,默认情况下
isAwarded
false
,您将只能为每辆汽车奖励一次:

private function checkAddPoints():void {
    var i:uint, len:uint = aCarArray.length, currentCar:car;
    for (i; i < len; ++i) {
        currentCar = aCarArray[i];

        //Award only once
        if (!currentCar.isAwarded && ball.x > currentCar.x) {
            nScore++;
            currentCar.isAwarded = true;
            updateCurrentScore();
        }
    }
}
private函数checkAddPoints():void{
变量i:uint,len:uint=aCarArray.length,currentCar:car;
对于(i;icurrentCar.x){
nScore++;
currentCar.isAwarded=真;
updateCurrentScore();
}
}
}

那么现场有几辆车?你想为每辆车奖励一名玩家,并且只奖励一次分数吗?是的,这些车会通过计时器添加到屏幕上,然后一旦离开屏幕就会被销毁。如果球越过汽车,则加一分。基本上,只要给每一辆车加一分,球就会跳过去而不会撞到车上。我已经创建了一个函数,用于检查汽车阵列的hittest是否正常工作。但是每次球从车上跳下来都要加一分,这有点难,所以我仍然会保留var currentCar:car=aCarArray[i];在函数中?谢谢,但我似乎在添加变量i:…currentCar:car的地方得到了这个错误。我得到这个:通过引用静态类型car来访问可能未定义的属性。当然,因为这是唯一的想法,您可以如何解决您的问题。这取决于你,将isAwarded属性添加到
汽车
类中。哦,我不知道我必须将isAwarded添加到我的汽车类中,我以为我可以在主机类中完成所有操作。对于这一点,很多人还是新手。那么isAward布尔值必须在汽车类中,还是可以在主机类中?我很难弄明白这一点
private function checkAddPoints():void {
    var i:uint, len:uint = aCarArray.length, currentCar:car;
    for (i; i < len; ++i) {
        currentCar = aCarArray[i];

        //Award only once
        if (!currentCar.isAwarded && ball.x > currentCar.x) {
            nScore++;
            currentCar.isAwarded = true;
            updateCurrentScore();
        }
    }
}