JS+HTML开发一个飞机大战小游戏JS实例

#推荐
JS+HTML开发一个飞机大战小游戏JS实例

2026-03-17 2
[!--dianshu--] C币
VIP折扣
    折扣详情
  • 体验VIP会员

    免费

  • 月卡VIP会员

    免费

  • 年卡VIP会员

    免费

  • 永久VIP会员

    免费

查看演示
下载不了?请联系网站客服提交链接错误!
TAG标签: 安装指导

#推荐
JS+HTML开发一个飞机大战小游戏JS实例

2026-03-17 php教程 9999 2
郑重承诺丨总裁主题提供安全交易、信息保真!
TAG标签:
安装指导
[!--dianshu--] C币
VIP权限详情
    会员权限详情
  • 体验VIP会员

    免费

  • 月卡VIP会员

    免费

  • 年卡VIP会员

    免费

  • 永久VIP会员

    免费

开通VIP尊享优惠特权
立即下载 等待添加 升级会员 最新活动
微信扫码咨询 微信扫码咨询

联系电话:18888888888

进入TA的商铺 联系官方客服
详情介绍

欢迎!我白天是个邮递员,晚上就是个有抱负的演员。这是我的网站。我住在天朝的帝都,有条叫做Jack的狗。

源码示例:

<!doctype html><html><head>        <meta charset="UTF-8">        <title>Document</title>        <style>                *{padding: 0;margin: 0;}                #con{                        width: 320px; height: 566px; margin: 0 auto;                        border: 1px solid green; cursor: pointer;                        position: relative; margin-top: 10px; overflow: hidden;                }                #box{                        width: 320px; height: 566px;                        margin: 0 auto; overflow: hidden;                         position: absolute; z-index: 1;                }                #index,#copy{                        background: url('./images/background_1.png') no-repeat;                }                #me{                        display: block; position: absolute;                        left: 100px; top: 400px; z-index: 10; opacity: 1;                }                .buiOne{                        display: block;position: absolute;z-index: 10;                }                .enemyOne,.enemyTwo,.enemyThree{                        display: block;position: absolute;z-index: 10;                }                .explode{                        display: block;position: absolute;z-index: 10;                }                #over,#start{                        position: absolute;z-index: 16; border: 2px solid #5E6262;                        left: 100px; top: 230px; line-height: 40px; border-radius: 10px; width: 100px; text-align: center;opacity: 1;                        background: #CCCCCC; display: none;                }                #start:hover{background: #666;}                .copy{                        display: block; position: absolute;z-index: 15; width: 100%; height: 100%;                }                #tmpscore{position: absolute;z-index: 20;}        </style>        <script>                var timeGo;                window.onload = function(){                        setInterval(function(){explodeNum++},20000);                        // 分数                        var score = 0;                        // 等级                        var level = 0;                        var explodeNum = 20;                        // 射击定时次数 [开始时间,间隔]                        var shootTimes = [30,8];[/align]                         // 敌军生成定时次数 [开始时间,间隔]                        var enemyTimes = [30,60];                        var timing;                        // 获取元素box 、index 和copy                        var con         = document.getElementById('con');                        var box         = document.getElementById('box');                        var index         = document.getElementById('index');                        var copy         = document.getElementById('copy');                        var me         = document.getElementById('me');                         // 背景图滚动相关                        index.style.height = box.offsetHeight+'px';                        copy.style.height = box.offsetHeight+'px';                        copy.innerHTML = index.innerHTML;                                         // 键盘上下左右空格事件                        document.onkeydown=function(event){                                var e = event || window.event || arguments.callee.caller.arguments[0];                                if(e && e.keyCode ==37 && (me.offsetLeft>0)){                                        me.style.left = (me.offsetLeft-10)+'px';                                }                                if(e && e.keyCode ==38 && (me.offsetTop>0)){                                        me.style.top = (me.offsetTop-10)+'px';                                 }                                if(e && e.keyCode ==39 && (me.offsetLeft<255)){                                        me.style.left = (me.offsetLeft+10)+'px';                                 }                                if(e && e.keyCode ==40 && (me.offsetTop<485)){                                                me.style.top = (me.offsetTop+10)+'px';                                 }                                if(e && e.keyCode ==32){                                                clearInterval(timing);                                                start();                                                                }                                if(e && e.keyCode ==90){                                        if(explodeNum <=0){                                                return false;                                        }                                        explodeNum--;                                        // 特技                                        var width = con.offsetWidth;                                        var height = con.offsetHeight+50;                                        (function(e){                                                        var time = new Date().getTime()+1000*e;                                                        var tmp = setInterval(function(){                                                                for(var i=-25; i<width-10; i+=20){                                                                        shoot(i,height,'./images/bullet2.png');                                                                }                                                                if(new Date().getTime()>time){                                                                        clearInterval(tmp);                                                                }                                                        },100)                                        })(2);                                }                        }                         // 飞机射击                        function shoot(left,top,imgSrc){                                var left = left ? left : me.offsetLeft;                                var top = top ? top : me.offsetTop;                                var imgSrc = imgSrc ? imgSrc :'./images/bullet1.png';                                (function(){                                        var bui = document.createElement("img");                                        bui.setAttribute('src',imgSrc);                                        bui.setAttribute('class','buiOne');                                        bui.setAttribute('style','left:'+(left+31)+'px;top:'+(top-15)+'px;');                                        con.appendChild(bui);                                        return 1;                                })();                        }                         // 定时器                        timeGo = function(){                                box.setAttribute('style','opacity:1');                                me.setAttribute('style','opacity:1;');                                var start = document.getElementById('start');                                start.setAttribute('style','display:none;');                                 timing = setInterval(function(){                                        /**  子弹射击  **/                                         (function(){                                                if(score>50)         shootTimes[1]        =6;                                                if(score>100)         shootTimes[1]        =5;                                                if(score>150)         shootTimes[1]        =4;                                                if(score>200)         shootTimes[1]        =3;                                                if(shootTimes[0] > 0){                                                        shootTimes[0] --;                                                }else{                                                        shootTimes[0] = shootTimes[1];                                                        shoot();                                                }                                        })();                                         // 等级                                         (function(){level=Math.floor(score/100)})();                                         /**  背景滚动  **/                                         box.scrollTop-=4;                                        if(box.scrollTop == 0){                                                box.scrollTop = box.offsetHeight;                                        }                                         /**  敌军生成  **/                                         (function(){                                                enemyTimes[1] = 60-level*5;                                                if(enemyTimes[0] > 0){                                                        enemyTimes[0] --;                                                }else{                                                        enemyTimes[0] = enemyTimes[1];                                                        makeEnemy();                                                }                                                 function makeEnemy(){                                                        var enemy = document.createElement("img");                                                        var n = Math.ceil(Math.random()*100);                                                        if(n>30){                                                                enemy.setAttribute('src','./images/enemy1_fly_1.png');                                                                enemy.setAttribute('class','enemyOne');                                                                enemy.setAttribute('blood','3');                                                        }else if(n>2){                                                                enemy.setAttribute('src','./images/enemy3_fly_1.png');                                                                enemy.setAttribute('class','enemyTwo');                                                                enemy.setAttribute('blood','10');                                                                }else if(n>0){                                                                enemy.setAttribute('src','./images/enemy2_fly_1.png');                                                                enemy.setAttribute('class','enemyThree');                                                                        enemy.setAttribute('blood','40');                                                        }else{                                                                return false;                                                        }                                                        var left = Math.random()*200;                                                        enemy.setAttribute('style','left:'+left+'px;top:0px;');                                                        con.appendChild(enemy);                                                }                                        })();                                         /**  飞行,超出消失  **/                                        // 获取所有图片元素                                        var bui = document.getElementsByTagName('img');                                         // 定义所有敌军                                        var enemy = new Array();                                        // 定义所有子弹                                        var buis = new Array();                                         // 子弹,敌军,飞行事件   超出范围消失事件                                        for(e in bui){                                                if(typeof(bui[e])==='object'){                                                        var classs = bui[e].getAttribute('class');                                                         if((classs =='enemyOne')||(classs == 'enemyTwo')||(classs == 'enemyThree')){                                                                // 给大型飞机定义速度                                                                speedOne         =        (classs == 'enemyOne')                 ? -1 : 0;                                                                speedTwo         =        (classs == 'enemyTwo')                 ? -2 : 0;                                                                speedThree         =        (classs == 'enemyThree')         ? -3 : 0;                                                                bui[e].style.top = bui[e].offsetTop+5+speedThree+speedTwo+speedOne+level/2+'px';                                                                // 敌军消失事件                                                                if(bui[e].offsetTop>520){                                                                        con.removeChild(bui[e]);                                                                }else{                                                                        enemy.unshift(bui[e]);                                                                }                                                        }else if(bui[e].getAttribute('class')=='buiOne'){                                                                bui[e].style.top = bui[e].offsetTop-25+'px';                                                                // 子弹消失事件                                                                if(bui[e].offsetTop<-25){                                                                        con.removeChild(bui[e]);                                                                }else{                                                                        buis.unshift(bui[e]);                                                                }                                                        }                                                }                                        }                                         // 子弹和敌军撞击判断                                        for(var i in enemy){                                                for(var j in buis){                                                        if(impact(enemy[i],buis[j])){                                                                var blood = parseInt(enemy[i].getAttribute('blood'));                                                                enemy[i].setAttribute('blood',blood-1);                                                                if(enemy[i].getAttribute('class')=='enemyOne'){                                                                        if(blood<0){                                                                                explode(enemy[i],2);                                                                        }                                                                }else if(enemy[i].getAttribute('class')=='enemyTwo'){                                                                        if(blood<0){                                                                                explode(enemy[i],3);                                                                        }                                                                }else if(enemy[i].getAttribute('class')=='enemyThree'){                                                                        if(blood<0){                                                                                explode(enemy[i],4);                                                                        }                                                                }                                                                explode(buis[j],5);                                                        }                                                }                                        }                                         // 自己和敌军撞击判断                                        for(e in bui){                                                if(typeof(bui[e])==='object'){                                                        if((bui[e].getAttribute('class')=='enemyOne')){                                                                if(impact(bui[e],me)){                                                                        explode(bui[e],2);                                                                        explode(me,1);                                                                }                                                        }else if(bui[e].getAttribute('class')=='enemyTwo'){                                                                if(impact(bui[e],me)){                                                                        explode(bui[e],3);                                                                        explode(me,1);                                                                }                                                        }else if(bui[e].getAttribute('class')=='enemyThree'){                                                                if(impact(bui[e],me)){                                                                        explode(bui[e],4);                                                                        explode(me,1);                                                                }                                                        }                                                }                                        }                                        document.getElementById('tmpscore').innerHTML='分数:'+score+'<br />装弹:'+shootTimes+'<br />level:'+level+'<br />特技:'+explodeNum;                                },50);                        }                                                 /**                        * 检测两个元素是否碰撞                        * [url=home.php?mod=space&uid=952169]@Param[/url] 检测的两个元素                        * [url=home.php?mod=space&uid=155549]@Return[/url] 如果碰撞返回true 否则返回false                        */                         function impact(a,b){                                var aTop         = a.offsetTop;                                var aLeft         = a.offsetLeft;                                var aWidth         = a.offsetWidth;                                var aHeight = a.offsetHeight;                                var bTop         = b.offsetTop;                                var bLeft         = b.offsetLeft;                                var bWidth         = b.offsetWidth;                                var bHeight = b.offsetHeight;                                 if((bLeft>(aLeft+aWidth))||(aLeft>(bLeft+bWidth))||(bTop>(aTop+aHeight))||(aTop>(bTop+bHeight))){                                        return false;                                        }else{                                        return true;                                }                        }                         /**                        * 处理爆炸                        * @param o需要爆炸的对象 n 1=自身,2=小型敌军,3=中型敌军,4=巨型敌军                        * @return over 游戏结束  true,false                        */                         function explode(o,n){                                if(n==5){                                        if(o){                                                con.removeChild(o);                                        }                                        return false;                                }                                switch(n){                                        case 1:                                                         src = './images/myself.gif';                                                        clearInterval(timing);                                                        document.getElementById('score').innerHTML = score;                                                        document.getElementById('over').style = 'display:block';                                                        break;                                        case 2: src = './images/small_explode.gif';score+=3;                                                        break;                                        case 3: src = './images/middle_explode.gif';score+=10;                                                        break;                                        case 4: src = './images/large_explode.gif';score+=100;                                                        break;                                        default:                                                     break;                                }                                var top         = o.offsetTop;                                var left         = o.offsetLeft;                                var explode = document.createElement("img");                                explode.setAttribute('src',src);                                explode.setAttribute('class','explode');                                explode.setAttribute('style','left:'+left+'px;top:'+top+'px;');                                con.appendChild(explode);                                if(n != 1){                                        setTimeout(function(){                                                con.removeChild(explode);                                        },1000);                                }                                if(o){                                        con.removeChild(o);                                }                        }                        // 游戏开始相关                        start();                        function start(){                                var con        = document.getElementById('con');                                con.setAttribute('style','background:url("./images/start.png")');                                var box = document.getElementById('box');                                box.setAttribute('style','opacity:0');                                var me = document.getElementById('me');                                me.setAttribute('style','opacity:0;');                                var start = document.getElementById('start');                                start.setAttribute('style','display:block;top:350px;cursor:pointer;');                                start.setAttribute('onclick','timeGo()');                        }                }                         </script></head><body>        <div id="con">                <span id="tmpscore"></span>                <div id="box">                        <div id="index"></div>                                        <div id="copy"></div>                </div>                <img src="./images/me.gif" id="me" alt="">                <div id="over">                        成绩:<span id="score"></span>                        <br />                        Game Over                </div>                <div id="start">                        开始游戏                </div>                <div></div>        </div></body></html>源码释义:

此代码是一个小游戏,其功能是控制一个飞机在空中飞行并进行打击,消灭敌军以获得积分。具体实现方式如下:HTML部分:使用了一个主容器,一个背景图层,一个前景图层(用于显示敌军飞机和自己的飞机),以及一个游戏结束图层和开始游戏按钮。同时定义了一个临时分数显示元素。CSS样式部分:定义了主容器和背景图的样式,同时将前景图层标记为绝对定位的,并将z-index设置为1,以使其显示于背景之上。此外还定义了子弹、敌军飞机和爆炸效果的样式,以及游戏结束和开始游戏按钮的样式。JavaScript部分:程序的主要逻辑在函数timeGo中,该函数主要实现了以下功能:监听键盘事件控制飞机的移动,具体实现使用了document.onkeydown方法和event.keyCode属性。飞机发射子弹(shoot函数):检查是否超时,超时则发射一个新的子弹,具体实现使用了setInterval方法。制作敌军飞机:按照一定规则生成不同类型的敌军飞机,并设定它们的初始位置,具体实现也使用了setInterval方法。检测子弹和敌军飞机的碰撞事件,具体实现使用了impact函数判断是否有碰撞,并调用explode函数处理爆炸效果。检测飞机和敌军飞机的碰撞事件,并调用explode函数处理爆炸效果。背景图自动滚动,将box.scrollTop的值减去4,并在scrollTop为0时重新将其赋值为box.offsetHeight。定时刷新临时分数显示,显示当前的分数、剩余子弹、等级和可用特技。另外,该文件还定义了函数explode、start以及impact,分别用于处理爆炸效果、游戏开始和碰撞事件。

源码下载地址:https://www.wdzzz.com/code/youxi/1717.html

下载地址
  • 提取密码
  • 1561
  • 解压密码
  • DWQwdewq
    立即免费下载
    JS+HTML开发一个飞机大战小游戏JS实例
收藏 (15) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 ()

所有文章为演示数据,不提供下载地址,版权归原作者所有,仅提供演示效果!

CMS主题网 php教程 JS+HTML开发一个飞机大战小游戏JS实例 /showinfo-48-120-0.html

我们只做高端Wordpress主题开发!

常见问题
  • 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用
查看详情

相关文章

帝国CMS二次开发 函数文件      PRinterror()/e/class/connect.phpline 132query()/e/class/db_sql.php line 10fetch1()/e/class/db_sql.php line 30fetch()/e/class/db_sql.php line 22checklevel()/e/class/functions.php line 3414insert_dolog()/e/class/functions.php line 3...
#推荐
2026-03-17 14 C币
帝国CMS8.0父子信息调用方      帝国CMS8.0版新增父子信息功能,让一条信息也能成为一个信息、一个栏目、一个专题、甚至一个网站。本文共有四个部分:一、父子信息功能使用流程。二、调用子信息:可以用索引灵动标签调用。三、父子信息列表访问地址的语法说明。四、进阶:调用当前父子信息...
#推荐
2026-03-17 4 C币
帝国CMS判断当前数据库是      有时候我们需要判断数据库是否包含某字段,就可以使用下面这段SQL语法,$fr=$empire-&gt;fetch1(&quot;SELECT COUNT(*) AS column_exists FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = &amp;#39;$infotb&amp;#39; AND COLUMN_NAME = &amp;#39;money&amp;#39;&quot;);if($fr[&amp;...
#推荐
2026-03-17 4 C币
Python开发一个ChatGPT GU      1、首先去下载这个ChatGPT库,用到的库是这个:https://github.com/acheong08/ChatGPT2、安装这个ChatGPT库:pip3 install revChatGPT==0.0.a423、同目录还需要一个“config.json”:{    &quot;session_token&quot;: &quot;&quot;,    &quot;cf_clearance&quot;: &quot;&quot;,    &quot;user_agent&quot;: &quot;
#推荐
2026-03-17 4 C币
使用CSS Grid Generator拖      如果你是CSS小白,不会使用复杂的UI框架,又需要开发一个响应式网站,那么我的站长站推荐你使用CSS Grid Generator,直接拖拽网格,就可以立即生成响应式CSS代码,复制到自己项目即可使用。使用方法1、首先根据你的项目需求,生成指定的列数和网格数量2、然后拖到...
#推荐
2026-03-17 3 C币
Playwright闲鱼智能监控机      项目介绍Playwright闲鱼智能监控机器人项目,基于 Playwright 和AI过滤分析的闲鱼多任务实时监控与智能分析工具,配备了功能完善的 Web 管理界面。可以实时按规则抓取闲鱼商品,垃圾佬的最爱。闲鱼智能监控机器人:https://github.com/dingyufei615/ai-goof...
#推荐
2026-03-17 3 C币
过年给网站加一对灯笼CSS      马上快过年了,给网站加一对红灯笼,这样才有过年的喜庆劲儿。灯笼是代码生成的无需图片,而且还会摆动。使用方法把HTML下面代码粘贴到网页BODY内任意位子都可以。灯笼的位子可以微调.deng-box的left和right数值。CSS代码&lt;!-- 灯笼代码 --&gt;&lt;div class=&quot;de...
#推荐
2026-03-17 3 C币
ajax上传文件进度条功能示      ajax上传文件时,有时比较耗时,需要在界面上显示下进度信息,获取ajaxSettings中的xhr对象,为它的upload属性绑定progress事件的处理函数前端代码&lt;!DOCTYPE html&gt;&lt;html&gt;&lt;head&gt;&lt;meta charset=&quot;utf8&quot;&gt;&lt;title&gt;test upload&lt;/title&gt;&lt;!--jquery--&gt;&lt;script src=&quot;h...
#推荐
2026-03-17 3 C币