as3命中测试数组多次从布尔返回

时间:2011-03-09 15:08:16

标签: actionscript-3 boolean

我想检查我的角色是否正在击中阵列中的任何项目(true),如果他不是(false)。现在布尔值在for循环中,因此每次程序更新时它返回一个“true”和多个“false”语句。我只想要一个返回,如果角色在数组中击中一个影片剪辑则为true,如果不是则为false。这是代码:

for(var i:int = 0; i<steps.length; i++){
            if(steps[i].hitTestPoint(hero.x,hero.y+hHeight/2, true)){
                onSteps = true;
            }else{
                onSteps = false;
            }   
}

3 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

我认为你想要的是一个贯穿steps数组的函数,然后一击就会返回true。如果没有命中,则默认返回“false”。

function checkForHits():Boolean {
    for(var i:int = 0; i<steps.length; i++){
        if(steps[i].hitTestPoint(hero.x,hero.y+hHeight/2, true)){
            return true;
        }
    }
    return false;
}

答案 2 :(得分:0)

Array对象已有方法

some(callback:Function, thisObject:* = null):Boolean

true任何元素满足回调函数的情况下返回Array,在 no <的情况下返回false / strong> Array的元素满足回调函数。

以下是文档:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/Array.html#some()

您的代码类似于:

onSteps = steps.some(function (item:*, index:int, array:Array):Boolean
            {
               return item.hitTestPoint(hero.x,hero.y+hHeight/2, true);
            });