使用js实现简单的发射子弹的效果,结果只能发射一颗子弹没有办法做到连发
高洛峰
高洛峰 2016-11-19 14:01:56
0
1
769
var timer = null;
switch (e.keyCode) {
        case 37:
            div1.style.left = div1.offsetLeft - 10 + "px";
            break;
        case 39:
            div1.style.left = div1.offsetLeft + 10 + "px";
            break;
        case 38:
            div1.style.top = div1.offsetTop - 10 + "px";
            break;
        case 40:
            div1.style.top = div1.offsetTop + 10 + "px";
            break;
        case 81:
            div22 = document.createElement("div");
            div22.style.width = "20px";
            div22.style.height = "20px";
            div22.style.top = div1.offsetTop + 65 +"px";
            div22.style.left = div1.offsetLeft + 260+"px";
            div22.className = "pp";
            div1.appendChild(div22)
            var timer  = setInterval(function(){
                div22.style.left = div22.offsetLeft + 30+ "px";
                if(div22.offsetLeft >= 800){
                    div1.removeChild(div22);
                    clearInterval(timer);
                }
            },300)
只能同时发射一颗子弹,第一颗子弹没有消亡的时候发射第二颗,第一颗子弹会固定在屏幕上,以此类推.目前只知道是timer的问题,但是 不知道要怎么解决 额额额


高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

모든 응답(1)
三叔

不知道对不对:

var array = [];
var div22;
setInterval(function(){
    array.forEach(function(div, index) {
        div.style.left = div.offsetLeft + 30+ "px";
        if(div.offsetLeft >= 800){
            div1.removeChild(div22);
            array.spilce(index, 1);
        }
    });
},300)
switch (e.keyCode) {
    case 37:
        div1.style.left = div1.offsetLeft - 10 + "px";
        break;
    case 39:
        div1.style.left = div1.offsetLeft + 10 + "px";
        break;
    case 38:
        div1.style.top = div1.offsetTop - 10 + "px";
        break;
    case 40:
        div1.style.top = div1.offsetTop + 10 + "px";
        break;
    case 81:
        div22 = document.createElement("div");
        div22.style.width = "20px";
        div22.style.height = "20px";
        div22.style.top = div1.offsetTop + 65 +"px";
        div22.style.left = div1.offsetLeft + 260+"px";
        div22.className = "pp";
        div1.appendChild(div22);
        array.push(div22);
}


최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿