最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS面向對象實現(xiàn)飛機大戰(zhàn)

 更新時間:2020年08月26日 10:58:09   作者:action-XD  
這篇文章主要為大家詳細介紹了JS面向對象實現(xiàn)飛機大戰(zhàn),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了JS面向對象實現(xiàn)飛機大戰(zhàn)的具體代碼,供大家參考,具體內容如下

主頁面

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>
 <style>
 .bg{
  width: 530px;
  height: 600px;
  position: relative;
  margin: 100px auto;
  background: url("bg.png") no-repeat 0 -9399px;
 }
 .plane{
  width: 60px;
  height: 53px;
  position: absolute;
  left: 235px;
  bottom: 10px;
  background: url("my_air.gif") no-repeat;
 }
 .enemy{
  position: absolute;
 }
 .buttle{
  width: 9px;
  height: 37px;
  position: absolute;
  background: url("my_ari_1.gif") no-repeat;
 }
 .bomp{
  width: 160px;
  height: 160px;
  position: absolute;
  background: url("0.gif") no-repeat;
 }
 </style>
</head>
<body>
<div class="bg" id="bg">
 <div class="plane" id="plane"></div>
</div>

</body>
<script type="text/javascript" src="buttle.js"></script>
<script type="text/javascript" src="enemies.js"></script>
<script src="jquery-3.0.0.min.js"></script>
<script>
 //bg移動begin
 var bg_height=-9399;
 function bg_move(){
 var bg=document.getElementById("bg");
 bg_height+=3;
 if (bg_height>0){
 bg_height=-9399;
 }
 bg.setAttribute("style","background: url('bg.png') no-repeat 0 "+bg_height+"px");
 }
 setInterval(bg_move,30);
 //bg移動over
 //通過獲取鍵盤的key值來控制飛機的方向begin
 document.onkeydown = function(){

 var key=event.keyCode;
 var plane =document.getElementById("plane");
 switch (key){
  case 37:
   plane_Left();
  break;
  case 38:
  plane_Top();
  break;
  case 39:
  plane_Right();
  break;
  case 40:
  plane_Bottom();
  break;
  case 32:
   fire();
  break;
 }
 };
 //通過獲取鍵盤的key值來控制飛機的方向over
 //飛機的方向begin
 var planeLeft=235;
 var planeBottom=10;
 //聲明全局變量planeBottom、planeLeft用來讓飛機移動
 function plane_Left(){
 if(planeLeft>0){
  planeLeft-=8;
  document.getElementById("plane").setAttribute("style","left:"+planeLeft+"px"+";"+"bottom:"+planeBottom+"px");
 }
 }
 function plane_Right(){
 if(planeLeft<470){
  planeLeft+=8;
  document.getElementById("plane").setAttribute("style","left:"+planeLeft+"px"+";"+"bottom:"+planeBottom+"px");
 }
 }
 function plane_Top(){
 if(planeBottom<550){
  planeBottom+=8;
  document.getElementById("plane").setAttribute("style","left:"+planeLeft+"px"+";"+"bottom:"+planeBottom+"px");
 }
 }
 function plane_Bottom(){
 if(planeBottom>10){
  planeBottom-=8;
  document.getElementById("plane").setAttribute("style","left:"+planeLeft+"px"+";"+"bottom:"+planeBottom+"px");
 }
 }
 //飛機的方向over
 function enemyShow(){
 var number = parseInt(Math.random()*10);
 for(var i=0;i<number;i++){
  var enemies=new enemiesShow();
 }
 }
 setInterval(enemyShow,3000);
 function fire(){
 var bottom=planeBottom+5+53;
 var left=planeLeft+30-5;
 var buttle = new buttleDemo(left,bottom);
 }


</script>
</html>

子彈

/**
 * Created by echo22 on 2016/7/29.
 */
function buttleDemo(left,bottom){
 var buttleLeft =left;
 var buttleBottom = bottom;
 var id;
 var Move;
 inti();
 function inti(){
 id=getRandom();
 var str = "<div class='buttle' id='b"+id+"'></div>";
 $("#bg").append(str);
 $("#b"+id).css({"left":buttleLeft,"bottom":buttleBottom});
 Move=setInterval(buttleMove,10);
 }
 //獲取隨機ID
 function getRandom(){
 return parseInt(Math.random()*10000);
 }
 //子彈的移動
 function buttleMove(){
 if(buttleBottom<550){
  buttleBottom+=10;
  $("#b"+id).css("bottom",buttleBottom);
  if(JudgeShot()){
  dispire();
  }
 }
 else {
  dispire();
 }
 }
 //清除子彈
 function dispire(){
 $("#b"+id).remove();
 clearInterval(Move);
 }
 //判斷子彈與敵機的碰撞位置
 function JudgeShot(){
 var enemy=$(".enemy");
 for (var i=0;i<enemy.length;i++){
  var enemy_top=$(".enemy").eq(i).css("top");
  var enemy_left=$(".enemy").eq(i).css("left");
  enemy_bottom=600-getInt(enemy_top);
  enemy_left=getInt(enemy_left);
  console.log(enemy_left);
  if (buttleLeft>enemy_left&&buttleLeft<enemy_left+50&&buttleBottom>enemy_bottom&&buttleBottom<enemy_bottom+60){
  $(".enemy").eq(i).remove();

  var bomp="<div class='bomp' id='bo"+id+"'></div>";
  $("#bg").append(bomp);
  $("#bo"+id).css({"left":buttleLeft-70,"bottom":buttleBottom-100});
  setTimeout(gundan,50);
  return true;
  }
 }
 return false;
 }
 function getInt(str){
 var result = str.substring(0,(str.length-2));
 return parseInt(result);
 }
 function gundan(){
 $("#bo"+id).remove();
 }
}

敵機

/**
 * Created by echo22 on 2016/7/29.
 */
function enemiesShow(){
 var id;
 init();
 function init(){
 var type=getEnemyType();
 var enemyLeft=getEnemyLeft();
 getEnemyPlane(type,enemyLeft);
 getLine();
 }
 function getEnemyPlane(type,left){
 console.log(111);
 id=parseInt(Math.random()*10000);
 var width;
 var height;
 if(type==1){
  width=47;
  height=72;
 }
 else {
  width=64;
  height=56;
 }
 var enemy="<div class='enemy' id='e"+id+"' ></div>";
 $("#bg").append(enemy);
 $("#e"+id).css({"width":width,"height":height,"left":left,"background":"url('d_j_"+type+".gif') no-repeat"});

 }
 function getEnemyType(){
 return (parseInt(Math.random()*10/5)>0)?1:3;
 }
 function getEnemyLeft(){
 return parseInt(Math.random()*(530-64));
 }
 function getLine(){
 Math.random()>0.5?zhiLine():quLine();
 }
 function zhiLine(){
 $("#e"+id).animate({
  "top":"520px"
 },3000,function(){
  $("#e"+id).remove();
 })
 }
 function quLine(){
 $("#e"+id).animate({
  "top":"200px",
  "left":getEnemyLeft()
 },1500,function(){})
 $("#e"+id).animate({
  "top":"520px",
  "left":getEnemyLeft()
 },1500,function(){
  $("#e"+id).remove();
 })
 }
}

更多有趣的經(jīng)典小游戲實現(xiàn)專題,分享給大家:

C++經(jīng)典小游戲匯總

python經(jīng)典小游戲匯總

python俄羅斯方塊游戲集合

JavaScript經(jīng)典游戲 玩不停

java經(jīng)典小游戲匯總

javascript經(jīng)典小游戲匯總

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 詳解前端安全之JavaScript防http劫持與XSS

    詳解前端安全之JavaScript防http劫持與XSS

    作為前端,一直以來都知道HTTP劫持與XSS跨站腳本、CSRF跨站請求偽造。防御這些劫持最好的方法是從后端入手,前端能做的太少。而且由于源碼的暴露,攻擊者很容易繞過防御手段。但這不代表我們去了解這塊的相關知識是沒意義的,本文的許多方法,用在其他方面也是大有作用。
    2021-05-05
  • 某人初學javascript的時候寫的學習筆記

    某人初學javascript的時候寫的學習筆記

    JavaScript對象就是一組屬性(方法)的集合 在該語言中如果變量名或方法名不符合聲明規(guī)范,則一定得用方括號“ [] ”引用它
    2010-12-12
  • JavaScript使用math.js進行精確計算操作示例

    JavaScript使用math.js進行精確計算操作示例

    這篇文章主要介紹了JavaScript使用math.js進行精確計算操作,結合實例形式分析了開源庫math.js進行高精度數(shù)學運算相關操作技巧,需要的朋友可以參考下
    2018-06-06
  • layui添加動態(tài)菜單與選項卡

    layui添加動態(tài)菜單與選項卡

    這篇文章主要為大家詳細介紹了layui添加動態(tài)菜單與選項卡,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • 詳解javascript實現(xiàn)瀑布流列式布局

    詳解javascript實現(xiàn)瀑布流列式布局

    這篇文章主要介紹了javascript實現(xiàn)瀑布流的兩種布局方式,一是絕對式布局、二是列式布局,詳細介紹了這兩種布局方式的原理,本文重點介紹列式布局,感興趣的小伙伴們可以參考一下
    2016-01-01
  • javascript appendChild,innerHTML,join性能比較代碼

    javascript appendChild,innerHTML,join性能比較代碼

    在實際應用中,應該避免直接用innerHTML,對于大量的字符連接運算,應該考慮先運算再輸出。
    2009-08-08
  • JavaScript如何攔截全局Fetch的請求與響應詳解

    JavaScript如何攔截全局Fetch的請求與響應詳解

    全局的fetch()方法用于發(fā)起獲取資源的請求,它返回一個promise,這個promise會在請求響應后被resolve,并傳回Response對象,這篇文章主要給大家介紹了關于JavaScript如何攔截全局Fetch的請求與響應的相關資料,需要的朋友可以參考下
    2024-04-04
  • javascript實現(xiàn)動態(tài)時鐘的啟動和停止

    javascript實現(xiàn)動態(tài)時鐘的啟動和停止

    這篇文章主要為大家詳細介紹了javascript實現(xiàn)動態(tài)時鐘的啟動和停止文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • 詳解JavaScript的表達式與運算符

    詳解JavaScript的表達式與運算符

    這篇文章主要介紹了JavaScript的表達式與運算符,需要的朋友可以參考下
    2015-11-11
  • JavaScript?編寫枚舉的最有效方法分享

    JavaScript?編寫枚舉的最有效方法分享

    這篇文章主要介紹了JavaScript?編寫枚舉的最有效方法分享,JavaScript語言本身不支持枚舉。如果我們想模擬枚舉,我們可以使用一個對象。更多相關內容感興趣的小伙伴可以參考一下
    2022-06-06

最新評論

万安县| 东宁县| 微博| 遂川县| 平乡县| 邵阳市| 长丰县| 阜南县| 苍溪县| 西充县| 邢台市| 美姑县| 星座| 黄平县| 浦东新区| 建湖县| 吴江市| 永德县| 晋江市| 远安县| 沙湾县| 本溪| 扶风县| 民和| 额尔古纳市| 绥棱县| 台前县| 广灵县| 威信县| 巴塘县| 高要市| 新蔡县| 台湾省| 贞丰县| 齐齐哈尔市| 石首市| 阿克陶县| 邮箱| 盐边县| 阿拉善左旗| 伊川县|