亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

JavaScript制作簡易的微信打飛機

2019-11-20 12:49:26
字體:
來源:轉載
供稿:網友

簡單的用JavaScript模擬微信打飛機,部分功能還不完善,剛開始寫,還有很多不足,還望大家多多指出。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head>  <title></title>  <meta http-equiv="content" content="text/html" charset="utf-8"/>  <style type="text/css">    *{      margin: 0;      padding: 0;    }    #contentdiv{      position: absolute;      left: 500px;    }    #startdiv{      width: 320px;      height: 568px;      background-image: url(../image/開始背景.png);    }    button{      outline: none;    }    #startdiv button{      position: absolute;      top: 500px;      left: 82px;      width: 150px;      height: 30px;      border: 1px solid black;      border-radius: 30px;      background-color: #c4c9ca;    }    #maindiv{      width: 320px;      height: 568px;      background-image:url(../image/background_1.png) ;      display: none;    }    #maindiv img{      position: absolute;      z-index: 1;    }    #scorediv{      font-size: 16px;      font-weight: bold;      position: absolute;      top: 10px;      left: 10px;      display: none;    }    #scorediv{      font-size: 18px;      font-weight: bold;    }    #suspenddiv{      position: absolute;      top: 210px;      left: 82px;      display: none;      z-index: 2;    }    #suspenddiv button{      width: 150px;      height: 30px;      margin-bottom: 20px;      border: 1px solid black;      border-radius: 30px;      background-color: #c4c9ca;    }    #enddiv{      position: absolute;      top: 210px;      left: 75px;      border: 1px solid gray;      border-radius: 5px;      text-align: center;      background-color:#d7ddde;      display: none;      z-index: 2;    }    .plantext{      width: 160px;      height: 30px;      line-height: 30px;      font-size: 16px;      font-weight: bold;    }    #planscore{      width: 160px;      height: 80px;      line-height: 80px;      border-top: 1px solid gray;      border-bottom: 1px solid gray;      font-size: 16px;      font-weight: bold;    }    #enddiv div{      width: 160px;      height: 50px;    }    #enddiv div button{      margin-top:10px ;      width: 90px;      height: 30px;      border: 1px solid gray;      border-radius: 30px;    }  </style></head> <body><div id="contentdiv">  <div id="startdiv">    <button onclick="begin()">開始游戲</button>  </div>  <div id="maindiv">    <div id="scorediv">      <label>分數:</label>      <label id="label">0</label>    </div>    <div id="suspenddiv">      <button>繼續</button><br/>      <button>重新開始</button><br/>      <button>回到主頁</button>    </div>    <div id="enddiv">      <p class="plantext">飛機大戰分數</p>      <p id="planscore">0</p>      <div><button onclick="jixu()">繼續</button></div>    </div>  </div></div><script type="text/javascript">//獲得主界面var mainDiv=document.getElementById("maindiv");//獲得開始界面var startdiv=document.getElementById("startdiv");//獲得游戲中分數顯示界面var scorediv=document.getElementById("scorediv");//獲得分數界面var scorelabel=document.getElementById("label");//獲得暫停界面var suspenddiv=document.getElementById("suspenddiv");//獲得游戲結束界面var enddiv=document.getElementById("enddiv");//獲得游戲結束后分數統計界面var planscore=document.getElementById("planscore");//初始化分數var scores=0; /* 創建飛機類 */function plan(hp,X,Y,sizeX,sizeY,score,dietime,sudu,boomimage,imagesrc){  this.planX=X;  this.planY=Y;  this.imagenode=null;  this.planhp=hp;  this.planscore=score;  this.plansizeX=sizeX;  this.plansizeY=sizeY;  this.planboomimage=boomimage;  this.planisdie=false;  this.plandietimes=0;  this.plandietime=dietime;  this.plansudu=sudu;//行為  /*   移動行為   */  this.planmove=function(){    if(scores<=50000){      this.imagenode.style.top=this.imagenode.offsetTop+this.plansudu+"px";    }    else if(scores>50000&&scores<=100000){      this.imagenode.style.top=this.imagenode.offsetTop+this.plansudu+1+"px";    }    else if(scores>100000&&scores<=150000){      this.imagenode.style.top=this.imagenode.offsetTop+this.plansudu+2+"px";    }    else if(scores>150000&&scores<=200000){      this.imagenode.style.top=this.imagenode.offsetTop+this.plansudu+3+"px";    }    else if(scores>200000&&scores<=300000){      this.imagenode.style.top=this.imagenode.offsetTop+this.plansudu+4+"px";    }    else{      this.imagenode.style.top=this.imagenode.offsetTop+this.plansudu+5+"px";    }  }  this.init=function(){    this.imagenode=document.createElement("img");    this.imagenode.style.left=this.planX+"px";    this.imagenode.style.top=this.planY+"px";    this.imagenode.src=imagesrc;    mainDiv.appendChild(this.imagenode);  }  this.init();} /* 創建子彈類 */function bullet(X,Y,sizeX,sizeY,imagesrc){  this.bulletX=X;  this.bulletY=Y;  this.bulletimage=null;  this.bulletattach=1;  this.bulletsizeX=sizeX;  this.bulletsizeY=sizeY;//行為  /*   移動行為   */  this.bulletmove=function(){    this.bulletimage.style.top=this.bulletimage.offsetTop-20+"px";  }  this.init=function(){    this.bulletimage=document.createElement("img");    this.bulletimage.style.left= this.bulletX+"px";    this.bulletimage.style.top= this.bulletY+"px";    this.bulletimage.src=imagesrc;    mainDiv.appendChild(this.bulletimage);  }  this.init();} /* 創建單行子彈類 */function oddbullet(X,Y){  bullet.call(this,X,Y,6,14,"../image/bullet1.png");} /* 創建敵機類 */function enemy(hp,a,b,sizeX,sizeY,score,dietime,sudu,boomimage,imagesrc){  plan.call(this,hp,random(a,b),-100,sizeX,sizeY,score,dietime,sudu,boomimage,imagesrc);}//產生min到max之間的隨機數function random(min,max){  return Math.floor(min+Math.random()*(max-min));} /* 創建本方飛機類 */function ourplan(X,Y){  var imagesrc="../image/我的飛機.gif";  plan.call(this,1,X,Y,66,80,0,660,0,"../image/本方飛機爆炸.gif",imagesrc);  this.imagenode.setAttribute('id','ourplan');} /* 創建本方飛機 */var selfplan=new ourplan(120,485);//移動事件var ourPlan=document.getElementById('ourplan');var yidong=function(){  var oevent=window.event||arguments[0];  var chufa=oevent.srcElement||oevent.target;  var selfplanX=oevent.clientX-500;  var selfplanY=oevent.clientY;  ourPlan.style.left=selfplanX-selfplan.plansizeX/2+"px";  ourPlan.style.top=selfplanY-selfplan.plansizeY/2+"px";//  document.getElementsByTagName('img')[0].style.left=selfplanX-selfplan.plansizeX/2+"px";//  document.getElementsByTagName('img')[0]..style.top=selfplanY-selfplan.plansizeY/2+"px";}/* 暫停事件 */var number=0;var zanting=function(){  if(number==0){    suspenddiv.style.display="block";    if(document.removeEventListener){      mainDiv.removeEventListener("mousemove",yidong,true);      bodyobj.removeEventListener("mousemove",bianjie,true);    }    else if(document.detachEvent){      mainDiv.detachEvent("onmousemove",yidong);      bodyobj.detachEvent("onmousemove",bianjie);    }    clearInterval(set);    number=1;  }  else{    suspenddiv.style.display="none";    if(document.addEventListener){      mainDiv.addEventListener("mousemove",yidong,true);      bodyobj.addEventListener("mousemove",bianjie,true);    }    else if(document.attachEvent){      mainDiv.attachEvent("onmousemove",yidong);      bodyobj.attachEvent("onmousemove",bianjie);    }    set=setInterval(start,20);    number=0;  }}//判斷本方飛機是否移出邊界,如果移出邊界,則取消mousemove事件,反之加上mousemove事件var bianjie=function(){  var oevent=window.event||arguments[0];  var bodyobjX=oevent.clientX;  var bodyobjY=oevent.clientY;  if(bodyobjX<505||bodyobjX>815||bodyobjY<0||bodyobjY>568){    if(document.removeEventListener){      mainDiv.removeEventListener("mousemove",yidong,true);    }    else if(document.detachEvent){      mainDiv.detachEvent("onmousemove",yidong);    }  }  else{    if(document.addEventListener){      mainDiv.addEventListener("mousemove",yidong,true);    }    else if(document.attachEvent){      mainDiv.attachEvent("nomousemove",yidong);    }  }}//暫停界面重新開始事件//function chongxinkaishi(){//  location.reload(true);//  startdiv.style.display="none";//  maindiv.style.display="block";//}var bodyobj=document.getElementsByTagName("body")[0];if(document.addEventListener){  //為本方飛機添加移動和暫停  mainDiv.addEventListener("mousemove",yidong,true);  //為本方飛機添加暫停事件  selfplan.imagenode.addEventListener("click",zanting,true);  //為body添加判斷本方飛機移出邊界事件  bodyobj.addEventListener("mousemove",bianjie,true);  //為暫停界面的繼續按鈕添加暫停事件  suspenddiv.getElementsByTagName("button")[0].addEventListener("click",zanting,true);//  suspenddiv.getElementsByTagName("button")[1].addEventListener("click",chongxinkaishi,true);  //為暫停界面的返回主頁按鈕添加事件  suspenddiv.getElementsByTagName("button")[2].addEventListener("click",jixu,true);}else if(document.attachEvent){  //為本方飛機添加移動  mainDiv.attachEvent("onmousemove",yidong);  //為本方飛機添加暫停事件  selfplan.imagenode.attachEvent("onclick",zanting);  //為body添加判斷本方飛機移出邊界事件  bodyobj.attachEvent("onmousemove",bianjie);  //為暫停界面的繼續按鈕添加暫停事件  suspenddiv.getElementsByTagName("button")[0].attachEvent("onclick",zanting);//  suspenddiv.getElementsByTagName("button")[1].attachEvent("click",chongxinkaishi,true);  //為暫停界面的返回主頁按鈕添加事件  suspenddiv.getElementsByTagName("button")[2].attachEvent("click",jixu,true);}//初始化隱藏本方飛機selfplan.imagenode.style.display="none"; /* 敵機對象數組 */var enemys=[]; /* 子彈對象數組 */var bullets=[];var mark=0;var mark1=0;var backgroundPositionY=0;/* 開始函數 */function start(){  mainDiv.style.backgroundPositionY=backgroundPositionY+"px";  backgroundPositionY+=0.5;  if(backgroundPositionY==568){    backgroundPositionY=0;  }  mark++;  /*   創建敵方飛機   */   if(mark==20){    mark1++;    //中飛機    if(mark1%5==0){      enemys.push(new enemy(6,25,274,46,60,5000,360,random(1,3),"../image/中飛機爆炸.gif","../image/enemy3_fly_1.png"));    }    //大飛機    if(mark1==20){      enemys.push(new enemy(12,57,210,110,164,30000,540,1,"../image/大飛機爆炸.gif","../image/enemy2_fly_1.png"));      mark1=0;    }    //小飛機    else{      enemys.push(new enemy(1,19,286,34,24,1000,360,random(1,4),"../image/小飛機爆炸.gif","../image/enemy1_fly_1.png"));    }    mark=0;  }   /*   移動敵方飛機   */  var enemyslen=enemys.length;  for(var i=0;i<enemyslen;i++){    if(enemys[i].planisdie!=true){      enemys[i].planmove();    }    /*     如果敵機超出邊界,刪除敵機     */    if(enemys[i].imagenode.offsetTop>568){      mainDiv.removeChild(enemys[i].imagenode);      enemys.splice(i,1);      enemyslen--;    }    //當敵機死亡標記為true時,經過一段時間后清除敵機    if(enemys[i].planisdie==true){      enemys[i].plandietimes+=20;      if(enemys[i].plandietimes==enemys[i].plandietime){        mainDiv.removeChild(enemys[i].imagenode);        enemys.splice(i,1);        enemyslen--;      }    }  }   /*   創建子彈   */  if(mark%5==0){    bullets.push(new oddbullet(parseInt(selfplan.imagenode.style.left)+31,parseInt(selfplan.imagenode.style.top)-10));  }   /*   移動子彈   */  var bulletslen=bullets.length;  for(var i=0;i<bulletslen;i++){    bullets[i].bulletmove();    /*     如果子彈超出邊界,刪除子彈     */    if(bullets[i].bulletimage.offsetTop<0){      mainDiv.removeChild(bullets[i].bulletimage);      bullets.splice(i,1);      bulletslen--;    }  }   /*   碰撞判斷   */  for(var k=0;k<bulletslen;k++){    for(var j=0;j<enemyslen;j++){      //判斷碰撞本方飛機      if(enemys[j].planisdie==false){        if(enemys[j].imagenode.offsetLeft+enemys[j].plansizeX>=selfplan.imagenode.offsetLeft&&enemys[j].imagenode.offsetLeft<=selfplan.imagenode.offsetLeft+selfplan.plansizeX){          if(enemys[j].imagenode.offsetTop+enemys[j].plansizeY>=selfplan.imagenode.offsetTop+40&&enemys[j].imagenode.offsetTop<=selfplan.imagenode.offsetTop-20+selfplan.plansizeY){            //碰撞本方飛機,游戲結束,統計分數            selfplan.imagenode.src="../image/本方飛機爆炸.gif";            enddiv.style.display="block";            planscore.innerHTML=scores;            if(document.removeEventListener){              mainDiv.removeEventListener("mousemove",yidong,true);              bodyobj.removeEventListener("mousemove",bianjie,true);            }            else if(document.detachEvent){              mainDiv.detachEvent("onmousemove",yidong);              bodyobj.removeEventListener("mousemove",bianjie,true);            }            clearInterval(set);          }        }        //判斷子彈與敵機碰撞        if((bullets[k].bulletimage.offsetLeft+bullets[k].bulletsizeX>enemys[j].imagenode.offsetLeft)&&(bullets[k].bulletimage.offsetLeft<enemys[j].imagenode.offsetLeft+enemys[j].plansizeX)){          if(bullets[k].bulletimage.offsetTop<=enemys[j].imagenode.offsetTop+enemys[j].plansizeY&&bullets[k].bulletimage.offsetTop+bullets[k].bulletsizeY>=enemys[j].imagenode.offsetTop){            //敵機血量減子彈攻擊力            enemys[j].planhp=enemys[j].planhp-bullets[k].bulletattach;            //敵機血量為0,敵機圖片換為爆炸圖片,死亡標記為true,計分            if(enemys[j].planhp==0){              scores=scores+enemys[j].planscore;              scorelabel.innerHTML=scores;              enemys[j].imagenode.src=enemys[j].planboomimage;              enemys[j].planisdie=true;            }            //刪除子彈            mainDiv.removeChild(bullets[k].bulletimage);            bullets.splice(k,1);            bulletslen--;            break;          }        }      }    }  }}/* 開始游戲按鈕點擊事件 */var set;function begin(){   startdiv.style.display="none";  mainDiv.style.display="block";  selfplan.imagenode.style.display="block";  scorediv.style.display="block";  /*   調用開始函數   */  set=setInterval(start,20);}//游戲結束后點擊繼續按鈕事件function jixu(){  location.reload(true);}</script></body></html>

以上所述就是本文的全部內容了,希望大家能夠喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品wwwww| 久久国产视频网站| 伊人久久男人天堂| 亚洲社区在线观看| 日本精品va在线观看| 欧美国产视频一区二区| 亚洲精品国精品久久99热一| 亚洲护士老师的毛茸茸最新章节| 国产成人欧美在线观看| 欧美日韩美女视频| 成人午夜小视频| 亚洲精品久久视频| 一级做a爰片久久毛片美女图片| 亚洲自拍偷拍在线| 91香蕉国产在线观看| 日韩最新中文字幕电影免费看| 久久精品小视频| 成人疯狂猛交xxx| 91国内揄拍国内精品对白| 午夜精品www| 日韩美女av在线| 久久综合久中文字幕青草| 亚洲国产高清福利视频| 中文字幕欧美日韩精品| 91亚洲国产精品| 午夜精品一区二区三区在线视频| 国产精品久久久久福利| 日本精品一区二区三区在线播放视频| 欧美精品999| 成人免费在线视频网站| 中日韩美女免费视频网站在线观看| 日韩精品亚洲视频| 日韩免费在线看| 国产美女精彩久久| 青青久久av北条麻妃黑人| 97人人模人人爽人人喊中文字| 国产精品1区2区在线观看| 国产精品网站视频| 亚洲成**性毛茸茸| 亚洲精品乱码久久久久久金桔影视| 欧美二区在线播放| 国产一区二区三区视频免费| 午夜精品福利电影| 国产精品久久一区主播| 欧美日韩另类字幕中文| 国产成人一区二| 国产亚洲视频中文字幕视频| 日韩www在线| 欧美日韩一区二区三区| 97av在线视频免费播放| 色综合天天狠天天透天天伊人| 萌白酱国产一区二区| 日韩性生活视频| 色综合久久天天综线观看| 国产精品久久久久久搜索| 91精品国产综合久久久久久蜜臀| 国产精品久久国产精品99gif| 亚洲精品国产精品国自产观看浪潮| 国产精品高精视频免费| 亚洲黄页视频免费观看| 亚洲va久久久噜噜噜| 亚洲一区二区三区久久| 国产精品视频大全| 亚洲精品一区二区在线| 尤物yw午夜国产精品视频| 一区二区三区黄色| 国产精品亚洲视频在线观看| 日本欧美爱爱爱| 欧美激情精品久久久久久| 久久久久99精品久久久久| 亚洲人免费视频| 欧亚精品在线观看| 精品国产91久久久| 亚洲精品suv精品一区二区| 久久偷看各类女兵18女厕嘘嘘| 亚洲性线免费观看视频成熟| 亚洲自拍高清视频网站| 亚洲国产欧美一区二区三区同亚洲| 青青草原成人在线视频| 久热爱精品视频线路一| 中文字幕免费精品一区高清| 大量国产精品视频| 国产欧美日韩精品在线观看| 69久久夜色精品国产69| 国产精品丝袜久久久久久不卡| 亚洲成av人片在线观看香蕉| 国产午夜精品免费一区二区三区| 日本精品免费一区二区三区| 欧美成人黄色小视频| 69久久夜色精品国产69乱青草| 永久免费看mv网站入口亚洲| 国产精品欧美一区二区三区奶水| 国产国产精品人在线视| 美女性感视频久久久| 538国产精品视频一区二区| 日韩在线观看免费高清| 久久青草精品视频免费观看| 成人精品久久久| 九九热精品视频| 成人免费看黄网站| 久久香蕉国产线看观看网| 狠狠躁夜夜躁人人躁婷婷91| 国产精品一区二区三区久久久| 欧美成人精品一区二区| 国产精品视频久久久久| 91大神在线播放精品| 欧美视频一区二区三区…| 中文字幕国产精品久久| 亚洲精品第一页| 日韩精品在线观看视频| 亚洲国产高清高潮精品美女| 欧美国产日韩中文字幕在线| 国产91免费看片| 午夜精品一区二区三区在线| 日韩视频免费大全中文字幕| 日韩福利在线播放| 久久香蕉频线观| 亚洲欧美综合精品久久成人| 8090理伦午夜在线电影| 欧美成人黑人xx视频免费观看| 在线视频一区二区| 日韩精品视频在线观看网址| 欧美黑人狂野猛交老妇| 亚洲成人久久网| 国产小视频91| 国产性猛交xxxx免费看久久| 亚洲国产精品yw在线观看| 日韩av在线直播| 亚洲成人精品久久久| 久久久在线免费观看| 国产专区精品视频| 国产精品成人av性教育| 欧美另类99xxxxx| 中文字幕9999| 久久久免费精品视频| 国产精品羞羞答答| 97久久精品人人澡人人爽缅北| 亚洲v日韩v综合v精品v| 欧美体内谢she精2性欧美| 55夜色66夜色国产精品视频| 国产日韩在线精品av| 久久久久久国产| 欧美日韩中国免费专区在线看| 久久人人爽人人| 91影视免费在线观看| 98精品在线视频| 日韩欧美精品中文字幕| 亚洲视频第一页| 日韩av毛片网| 欧美美最猛性xxxxxx| 国产精品成人va在线观看| 日韩欧美在线免费| 久久精品最新地址| 亚洲一区免费网站| 国产亚洲精品美女久久久久| 欧美日韩精品在线观看| 日本精品免费一区二区三区| 91av在线网站| 欧美一区二区三区艳史| 欧美午夜丰满在线18影院| 91国语精品自产拍在线观看性色| 精品国产福利在线| 中文字幕免费精品一区高清| 欧美高清视频免费观看|