javascript - 使用js实现简单的发射子弹的效果,结果只能发射一颗子弹没有办法做到连发
迷茫
迷茫 2017-04-11 09:01:48
[JavaScript讨论组]
var timer = null;
switch (e.keyCode) {
        case 37:
            p1.style.left = p1.offsetLeft - 10 + "px";
            break;
        case 39:
            p1.style.left = p1.offsetLeft + 10 + "px";
            break;
        case 38:
            p1.style.top = p1.offsetTop - 10 + "px";
            break;
        case 40:
            p1.style.top = p1.offsetTop + 10 + "px";
            break;
        case 81:
            p22 = document.createElement("p");
            p22.style.width = "20px";
            p22.style.height = "20px";
            p22.style.top = p1.offsetTop + 65 +"px";
            p22.style.left = p1.offsetLeft + 260+"px";
            p22.className = "pp";
            p1.appendChild(p22)
            var timer  = setInterval(function(){
                p22.style.left = p22.offsetLeft + 30+ "px";
                if(p22.offsetLeft >= 800){
                    p1.removeChild(p22);
                    clearInterval(timer);
                }
            },300)
只能同时发射一颗子弹,第一颗子弹没有消亡的时候发射第二颗,第一颗子弹会固定在屏幕上,以此类推.目前只知道是timer的问题,但是 不知道要怎么解决 额额额
迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(1)
PHP中文网

不知道对不对:

var array = [];
var p22;
setInterval(function(){
    array.forEach(function(p, index) {
        p.style.left = p.offsetLeft + 30+ "px";
        if(p.offsetLeft >= 800){
            p1.removeChild(p22);
            array.spilce(index, 1);
        }
    });
},300)
switch (e.keyCode) {
    case 37:
        p1.style.left = p1.offsetLeft - 10 + "px";
        break;
    case 39:
        p1.style.left = p1.offsetLeft + 10 + "px";
        break;
    case 38:
        p1.style.top = p1.offsetTop - 10 + "px";
        break;
    case 40:
        p1.style.top = p1.offsetTop + 10 + "px";
        break;
    case 81:
        p22 = document.createElement("p");
        p22.style.width = "20px";
        p22.style.height = "20px";
        p22.style.top = p1.offsetTop + 65 +"px";
        p22.style.left = p1.offsetLeft + 260+"px";
        p22.className = "pp";
        p1.appendChild(p22);
        array.push(p22);
}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号