欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

js飞机大战碰撞检测

程序员文章站 2024-03-15 21:39:00
...
    // 为每个方块检测top和left值
    function opinion() {
        var boxCoord = []; // 用来记录方块的坐标和当前标识
        for (var i = 0; i < pss.length; i++) {
            boxCoord[i] = []; // 创造一个两元数组
            boxCoord[i][0] = i; // 标识
            boxCoord[i][1] = pss[i].offsetTop; // 获取敌机top值
            boxCoord[i][2] = pss[i].offsetLeft; //  获取敌机left值
        }
        return boxCoord;
    }

    // 为每个子弹检测top和left值
    function issOpinion() {
        var bulletCoord = []
        for (var i = 0; i < iss.length; i++) {
            bulletCoord[i] = []; // 创造一个两元数组
            bulletCoord[i][0] = i; // 标识
            bulletCoord[i][1] = iss[i].offsetTop; // 子弹的top值
            bulletCoord[i][2] = iss[i].offsetLeft; // 子弹的left值
        }
        return bulletCoord;
    }

碰撞检测

function PK() {
        var opinionS = opinion(); //获取所有方块的数据
        var issOpinionS = issOpinion(); // 获取所有子弹的数据
        for (var zz = 0; zz < issOpinionS.length; zz++) {
            for (var i = 0; i < opinionS.length; i++) {
                if (issOpinionS[zz][1] < opinionS[i][1] + bsh && issOpinionS[zz][1] > opinionS[i][1] -
                    ish &&
                    issOpinionS[zz][2] < opinionS[i][2] + bsw && issOpinionS[zz][2] > opinionS[i][2] - isw
                ) {
                    var deletei = pss[i] || null; // 待处理敌机
                    var deleteb = iss[zz] || null; // 待处理子弹
                    adjust(1) // 加1分
                    difficulty() // 调整难度
                    if (deletei != null) {
                        emsX = pss[i].offsetLeft;
                        emsY = pss[i].offsetTop;
                        pss[i].a -= 1; // 敌机血量-1
                        if (pss[i].a <= 0) {
                            box.removeChild(pss[i]);
                            foe.vanish(); // 调用敌机消失动画
                        }
                    }
                    if (deleteb != null) {
                        box.removeChild(iss[zz]);
                    }
                }
            }
        }
    }
    setInterval(PK, 20);

 

相关标签: javascript