日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

js實現簡單的貪吃蛇游戲

瀏覽:224日期:2024-05-12 09:35:30

本文實例為大家分享了js實現貪吃蛇游戲的具體代碼,供大家參考,具體內容如下

運行截圖:

js實現簡單的貪吃蛇游戲

源碼:

<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <title>貪吃蛇小游戲</title> <style> body { margin:0px; padding:0px; } #main { margin:100px; } .btn { width:100px; height:40px; } .gtitle { font-size:25px; font-weight: bold; } #gnum { color:red; } </style></head> <body> <div id='main'> <h1>貪吃蛇</h1> <input type='button' value='開始游戲' /> <input type='button' value='暫停游戲' /> <span class='gtitle'>第 <span id='gnum'>1</span> 關</span> <script> var main = document.getElementById(’main’); var showcanvas = true; //是否開啟畫布格子 /** * 地圖對象的構造方法 * @param atom 原子大小寬和高是一樣的 10 * @param xnum 橫向原子的數量 * @param ynum 縱向原子的數量 * @constructor */ function Map(atom, xnum, ynum){ this.atom = atom; // 20x20 this.xnum = xnum; // this.ynum = ynum; this.canvas = null; //創建畫布的方法 this.create = function(){this.canvas = document.createElement(’div’);this.canvas.style.cssText='position:relative;top:40px;border:1px solid darkred; background:#FAFAFA';this.canvas.style.width = this.atom * this.xnum + ’px’; //畫布的寬this.canvas.style.height = this.atom * this.ynum + ’px’; //畫布的高main.appendChild(this.canvas); if(showcanvas) { for(var y=0; y<ynum; y++) { for (var x = 0; x < xnum; x++) { var a = document.createElement(’div’); a.style.cssText = 'border:1px solid yellow'; a.style.width = this.atom + ’px’; a.style.height = this.atom + ’px’; a.style.backgroundColor = 'LightSkyBlue'; this.canvas.appendChild(a); a.style.position = ’absolute’; a.style.left = x * this.atom + ’px’; a.style.top = y*this.atom+’px’; } }} } } /** * 創建食物的構造方法 * @param map 地圖對象 * @constructor */ function Food(map){ this.width = map.atom; this.height = map.atom; this.bgcolor= 'rgb('+Math.floor(Math.random()*200)+', '+Math.floor(Math.random()*200)+', ' + Math.floor(Math.random() * 200) +')'; this.x = Math.floor(Math.random()*map.xnum); this.y = Math.floor(Math.random()*map.ynum); this.flag = document.createElement(’div’); this.flag.style.width = this.width + ’px’; this.flag.style.height = this.height + ’px’; this.flag.style.backgroundColor = this.bgcolor; // this.flag.style.borderRadius = ’50%’; this.flag.style.position = ’absolute’; this.flag.style.left = this.x * this.width +’px’; this.flag.style.top = this.y * this.height + ’px’; map.canvas.appendChild(this.flag); } function Snake(map) { //設置寬,高 this.width=map.atom; this.height = map.atom; //默認走的方向 this.direction = ’right’; this.body = [{x:2, y:0}, //蛇頭, 第一點 0{x:1, y:0}, //蛇脖子, 第二點 1{x:0, y:0} //蛇尾, 第三點 2//{x:null, y:null, flag:null} 3 ]; //顯示蛇 this.display = function(){for(var i=0; i<this.body.length; i++){ if(this.body[i].x !=null) { //當吃到食物時, x==null, 不能新建, 不然會在0,0處理新建一個 var s = document.createElement(’div’); // 將節點保存到一個狀態變量中, 以便以后刪除使用 this.body[i].flag = s; //設置蛇的樣式 s.style.width = this.width + ’px’; s.style.height = this.height + ’px’; s.style.backgroundColor='rgb('+Math.floor(Math.random()*200)+', '+Math.floor(Math.random()*200)+', ' + Math.floor(Math.random() * 200) +')'; //s.style.borderRadius = ’50%’; //設置位置 s.style.position = ’absolute’; s.style.left = this.body[i].x * this.width + ’px’; s.style.top = this.body[i].y * this.height + ’px’; //添加到地圖中 map.canvas.appendChild(s); } } } //讓蛇運動起來 this.run = function() { for(var i=this.body.length-1; i>0; i--) { this.body[i].x = this.body[i-1].x; this.body[i].y = this.body[i-1].y;}//默認是right left up down// 根據方向處理蛇頭switch(this.direction) { case 'left': this.body[0].x -=1; break; case 'right': this.body[0].x +=1;break; case 'up': this.body[0].y -=1; break; case 'down': this.body[0].y +=1; break;} //判斷蛇頭吃到食物, xy和食物的XY重合if(this.body[0].x ==food.x && this.body[0].y == food.y ){ //蛇加一節, 根據最后節點定 this.body.push({x:null, y:null, flag:null}); //判讀一下設置級別 if(this.body.length > l.slength) { l.set(); } map.canvas.removeChild(food.flag); food = new Food(map); }//判斷是否出界, 蛇頭if(this.body[0].x <0 || this.body[0].x > map.xnum-1 || this.body[0].y <0 || this.body[0].y > map.ynum -1) { clearInterval(timer); //清除定時器 alert('怎么這么不小心撞墻了呢,摸摸頭'); //重新開始游戲 restart(map, this) return false;} //判讀是否和自己重合for(var i=4; i<this.body.length; i++){ if(this.body[0].x == this.body[i].x && this.body[0].y == this.body[i].y) { clearInterval(timer); //清除定時器 alert('呀,怎么喜歡咬自己的肉肉'); //重新開始游戲 restart(map, this) return false; } } for(var i=0; i<this.body.length; i++){ if(this.body[i].flag != null) { //當吃到食物, flag是等null, 且不能刪除 map.canvas.removeChild(this.body[i].flag) }} this.display(); } } //重新開始游戲 function restart(map, snake) { for(var i=0; i<snake.body.length; i++) {map.canvas.removeChild(snake.body[i].flag); } snake.body = [{x:2, y:0}, //蛇頭, 第一點 0{x:1, y:0}, //蛇脖子, 第二點 1{x:0, y:0} //蛇尾, 第三點 2 ]; snake.direction = ’right’; snake.display(); map.canvas.removeChild(food.flag); food = new Food(map); } //設置級別對象 function Level() { this.num = 1; //第幾級別 this.speed= 300; //毫秒, 每升一關, 數量減少20, 速度就加快了 this.slength = 8; //每個關的長度判斷 this.set = function() {this.num++;if(this.speed <= 50) { this.speed = 50;}else{ this.speed -=50;}this.slength += 10; //這個可以自己定義this.display();start(); //重新開始, 速度加快 } this.display = function() {document.getElementById(’gnum’).innerHTML = this.num; } } var l = new Level(); l.display(); //創建地圖對象 var map = new Map(20, 40, 20); map.create(); //顯示畫布 //構造食物對象 var food = new Food(map); //構造蛇對象 var snake = new Snake(map); snake.display(); // 組body加鍵盤事件, 上下左右 window.onkeydown = function(e){ var event = e || window.event; // console.log(event.keyCode); switch(event.keyCode) {case 38: if(snake.direction != 'down') { snake.direction = 'up'; } break;case 40: if(snake.direction != 'up') { snake.direction = 'down'; } break;case 37: if(snake.direction != 'right') { snake.direction = 'left'; } break;case 39: if(snake.direction != 'left') { snake.direction = 'right'; } break; } } var timer; //變量可以提升 function start() { clearInterval(timer); timer = setInterval(function(){snake.run(); },l.speed); } document.getElementById(’begin’).onclick=function(){ start(); } document.getElementById(’pause’).onclick=function() { clearInterval(timer); } </script></div> </body></html>

小編還為大家準備了精彩的專題:javascript經典小游戲匯總

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

標簽: JavaScript
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产日韩精品视频一区二区三区| 婷婷精品久久久久久久久久不卡| 日韩国产欧美一区二区三区| 美女91精品| 日韩中文字幕91| 日韩精品中文字幕吗一区二区| 青青国产91久久久久久| 久久久国产精品入口麻豆 | 日本一二区不卡| 精品免费在线| 日韩免费av| 亚洲深夜福利| 日本色综合中文字幕| 欧美亚洲网站| а√天堂8资源在线| 国产综合欧美| 日韩精品中文字幕一区二区| 国产一区二区三区四区大秀| 国产精品99免费看| 婷婷久久免费视频| 国产成人精品一区二区三区视频| 免费黄色成人| 九一国产精品| 久久精品97| 午夜av不卡| 亚洲狼人精品一区二区三区| 老牛国内精品亚洲成av人片| 欧美日韩国产高清电影| 性欧美精品高清| 国产欧美一区二区三区国产幕精品 | 午夜欧美在线| 日韩影片在线观看| 美女久久久久久| 亚洲精品1区2区| 国产精品日韩精品在线播放| 蜜桃tv一区二区三区| 欧美一级全黄| 成人自拍av| 国产欧美亚洲精品a| 日韩av一级| 国产欧美69| 亚洲欧美日韩精品一区二区| 精品久久福利| 日韩三区四区| 老司机精品视频在线播放| 国产农村妇女精品一区二区| 国内揄拍国内精品久久| 丝瓜av网站精品一区二区| 久久精品国产精品亚洲毛片| 欧美亚洲激情| 精品视频99| 鲁大师成人一区二区三区| 韩日一区二区| 国产探花一区二区| 亚洲综合不卡| 四虎884aa成人精品最新| 国产日产精品_国产精品毛片 | 欧美激情久久久久久久久久久| 狠狠色综合网| sm捆绑调教国产免费网站在线观看 | 国产欧美91| 亚洲一区二区三区在线免费| 午夜精品成人av| 麻豆高清免费国产一区| 日韩在线观看中文字幕| 99热精品在线| 久久青草久久| 精品久久精品| 日本成人在线一区| 男女激情视频一区| 五月婷婷六月综合| 亚洲涩涩在线| 国产精品久久久久久久久久10秀 | 国产一区二区三区久久久久久久久| 亚洲精一区二区三区| 婷婷亚洲五月色综合| 福利一区在线| 国产精品视频3p| 欧美日韩夜夜| 欧美一区成人| 亚洲欧美专区| 日韩影院在线观看| 午夜一级在线看亚洲| 在线亚洲一区| 国产亚洲高清视频| 黄色精品网站| 欧美福利一区| 国产一区日韩欧美| 91精品一区国产高清在线gif| 91欧美国产| 国产精品久久观看| 国产成人精品三级高清久久91| 国产欧美一区二区精品久久久| 国产欧美日韩一级| 国产精品欧美在线观看| 麻豆久久久久久| 精品国产一级| 视频福利一区| 91精品电影| 午夜在线视频观看日韩17c| 午夜亚洲精品| 日韩黄色免费网站| 国产亚洲欧美日韩精品一区二区三区 | 国产情侣久久| 国产精品三级| 精品一区二区三区在线观看视频| 麻豆精品在线| 色婷婷综合网| 欧美1级日本1级| 麻豆国产欧美日韩综合精品二区| 国产午夜久久av| 成人精品久久| 蜜桃视频欧美| 亚洲精品1区2区| 亚洲日韩中文字幕一区| 91精品丝袜国产高跟在线| 国产精品22p| 亚洲综合电影| 中文国产一区| 日韩区欧美区| 欧美激情精品| 不卡在线一区| 日本中文字幕视频一区| 老鸭窝一区二区久久精品| 日韩专区精品| 免费成人在线视频观看| 国产精品乱战久久久| 日韩一区欧美| 中文一区一区三区免费在线观| 国产精品毛片视频| 999久久久精品国产| 亚洲精品动态| 欧美www视频在线观看| 一区二区自拍| 国产精品99久久免费观看| 久久久久中文| 欧美亚洲tv| 91精品啪在线观看国产18| 日韩高清二区| 久久中文字幕二区| 少妇精品久久久一区二区| 国产在线日韩精品| 久久亚洲欧美| 成人在线视频中文字幕| 亚洲欧美日韩精品一区二区 | 国产精选久久| 午夜日韩福利| 国产劲爆久久| 国产尤物精品| 国产欧美日韩一级| 在线观看免费一区二区| 国产日产精品_国产精品毛片| 1000部精品久久久久久久久| 国产亚洲字幕| 国产精品毛片一区二区三区| 麻豆久久久久久| 蜜桃久久精品一区二区| 超级白嫩亚洲国产第一| 视频精品一区| 99精品视频在线| 欧美激情麻豆| 日韩欧美在线精品| 精品日韩毛片| 久久三级毛片| 一区二区日韩免费看| 日韩免费在线| 国产精品久久久免费| 中文精品视频| 欧美aa在线观看| 国产精品va| 亚洲精品动态| 午夜精品网站| 精品欧美一区二区三区在线观看| 国产精品一区二区三区av| 亚洲综合精品| 亚洲国产日韩欧美在线| 在线手机中文字幕| 国产精品日本一区二区不卡视频| 中文字幕中文字幕精品| 91精品xxx在线观看| 国产精品美女在线观看直播| 亚洲精品免费观看| 亚洲一区日韩在线| 久久一区二区中文字幕| 日本在线高清| 精品国产成人| 国产福利亚洲| 国产日韩亚洲| 久久国产视频网| 亚州国产精品| 综合激情网...| 欧美综合国产| 国产一区二区三区自拍| 免费福利视频一区二区三区| 欧美私人啪啪vps| 视频在线在亚洲| 国产精品毛片在线看| 亚洲作爱视频| 久久夜色精品| 蜜桃91丨九色丨蝌蚪91桃色|