Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript冲突检测和从数组中删除_Javascript_Html - Fatal编程技术网

Javascript冲突检测和从数组中删除

Javascript冲突检测和从数组中删除,javascript,html,Javascript,Html,我正在用HTML编写一个版本的太空入侵者,激光和敌人之间的碰撞检测不起作用。我在开发者控制台中没有看到任何错误 // Returns whether or not an object is empty, i.e., does not exist. function isEmpty(obj) { for(var key in obj) { if(obj.hasOwnProperty(key)) return false; } ret

我正在用HTML编写一个版本的太空入侵者,激光和敌人之间的碰撞检测不起作用。我在开发者控制台中没有看到任何错误

// Returns whether or not an object is empty, i.e., does not exist. 
function isEmpty(obj) {
    for(var key in obj) {
        if(obj.hasOwnProperty(key))
            return false;
    }
    return true;
}

function laserCollision() {
    for(var i = enemyArray.length - 1; i >= 0; i--) {
        for(var j = playerLaserBeamsArray.length-1; j >= 0; j--) {
            // make sure not to access an object which does not exist.
            if(isEmpty(playerLaserBeamsArray[j])) break;
            if(isEmpty(enemyArray[i])) break;
            // check if laser beam is at correct y coordinate
            if(playerLaserBeamsArray[j].getTopY() >= enemyArray[i].getBottomY() && playerLaserBeamsArray[j].getBottomY() <= enemyArray[i].getTopY()) {
                // check if laser beam is between the enemy's furthermost left and right x-coordinates
                if(playerLaserBeamsArray[j].getLeftX() <= enemyArray[i].getLeftX() && playerLaserBeamsArray[j].getRightX() <= enemyArray[i].getRightX()){
                    score ++;
                    enemyArray.splice(i, 1);
                }
            }

        }
    }
}
//返回对象是否为空,即不存在。
函数isEmpty(obj){
for(obj中的var键){
if(对象hasOwnProperty(键))
返回false;
}
返回true;
}
函数laserCollision(){
对于(var i=enemyArray.length-1;i>=0;i--){
对于(var j=playerLaserBeamsArray.length-1;j>=0;j--){
//确保不要访问不存在的对象。
如果(isEmpty(playerLaserBeamsArray[j])中断;
如果(isEmpty(enemyArray[i])中断;
//检查激光束是否处于正确的y坐标
if(playerLaserBeamsArray[j].getTopY()>=enemyArray[i].getBottomY()&&playerLaserBeamsArray[j].getBottomY()
if(playerLaserBeamsArray[j].getLeftX()