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

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

JavaScript實現貪吃蛇游戲

瀏覽:32日期:2023-06-02 11:21:35

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

通過JavaScript,我們可以實現貪吃蛇游戲,具體功能如下:

(1)通過按上下左右鍵來改變蛇的移動方向

(2)若蛇撞到自己,則游戲結束

(3)蛇移動出地圖邊緣時,會從地圖的另一邊進來

(4)長按方向鍵,蛇加速移動

(5)蛇吃到食物后,重新生成食物

完整代碼如下:

<!DOCTYPE html><html lang='en'> <head> <meta charset='UTF-8'> <meta http-equiv='X-UA-Compatible' content='IE=edge'> <meta name='viewport' content='width=device-width, initial-scale=1.0'> <title>Document</title></head> <body> <script>//地圖對象var Map;Map = { width: 990, height: 600, backgroundColor: ’rgba(36, 30, 225, 0.25)’, map: null, createMap: function () {if (this.map == null) { this.map = document.createElement('div');} }, adornMap: function () {this.map.style.position = 'relative';this.map.style.width = this.width + 'px';this.map.style.height = this.height + 'px';this.map.style.backgroundColor = this.backgroundColor; }, initialize: function () {this.createMap();this.adornMap();document.body.appendChild(this.map); }};//蛇對象var Snake;Snake = { snakeWidth: 30, snakeHeight: 30, snake: [[3, 1, null, ’red’], [2, 1, null, ’black’], [1, 1, null, ’black’]], maP: null, direct: 'right', timer: null, createSnake: function () {for (var i = 0; i < this.snake.length; i++) { if (this.snake[i][2] == null) {this.snake[i][2] = document.createElement('div'); } this.snake[i][2].style.width = this.snakeWidth + 'px'; this.snake[i][2].style.height = this.snakeHeight + 'px'; this.snake[i][2].style.backgroundColor = this.snake[i][3]; this.snake[i][2].style.position = 'absolute'; this.snake[i][2].style.left = this.snake[i][0] * this.snakeWidth + 'px'; this.snake[i][2].style.top = this.snake[i][1] * this.snakeHeight + 'px'; this.maP.appendChild(this.snake[i][2]);} }, move: function () {//蛇身移動for (var i = this.snake.length - 1; i > 0; i--) { this.snake[i][0] = this.snake[i - 1][0]; this.snake[i][1] = this.snake[i - 1][1];}//蛇頭移動switch (this.direct) { case 'left':this.snake[0][0] -= 1;break; case 'right':this.snake[0][0] += 1;break; case 'up':this.snake[0][1] -= 1;break; case 'down':this.snake[0][1] += 1;break;}//防止蛇移動至地圖外if (this.snake[0][0] > 32) { this.snake[0][0] = 0;}if (this.snake[0][0] < 0) { this.snake[0][0] = 32;}if (this.snake[0][1] < 0) { this.snake[0][1] = 19;}if (this.snake[0][1] > 19) { this.snake[0][1] = 0;}//若蛇撞到自己,則游戲結束for (var i = 1; i < this.snake.length; i++) { if (this.snake[0][0] == this.snake[i][0] && this.snake[0][1] == this.snake[i][1]) {clearInterval(this.timer);alert('游戲結束!');return; }}//蛇吃到食物時,重新生成食物位置,蛇身變長一節if (this.snake[0][0] == Food.left && this.snake[0][1] == Food.top) { Food.createFood(); this.snake.push([ this.snake[this.snake.length - 1][0], this.snake[this.snake.length - 1][1], null, 'black'] )}this.createSnake(); }, initialize: function () {var that = this;that.createSnake();that.timer = setInterval(function () { that.move();}, 500) }};//食物對象var Food;Food = { foodWidth: 30, foodHeight: 30, backgroundColor: 'orange', left: null, top: null, maP: null, snakE: null, food: null, //創建食物 createFood: function () {this.randomPosition();if (this.food == null) { this.food = document.createElement(’div’); this.food.style.width = this.foodWidth + 'px'; this.food.style.height = this.foodHeight + 'px'; this.food.style.backgroundColor = this.backgroundColor; this.food.style.position = 'absolute'; this.maP.appendChild(this.food);}this.food.style.left = this.left * this.foodWidth + 'px';this.food.style.top = this.top * this.foodHeight + 'px'; }, //隨機生成食物位置 randomPosition: function () {var repeat;do { repeat = false; this.left = Math.floor(Math.random() * 33); this.top = Math.floor(Math.random() * 20); for (var i = 0; i < this.snakE.length; i++) {if (this.left == this.snakE[i][0] && this.top == this.snakE[i][1]) { repeat = true;} }} while (repeat) }};window.addEventListener(’load’, function () { Map.initialize(); Snake.maP = Map.map; Snake.initialize(); Food.maP = Map.map; Food.snakE = Snake.snake; Food.createFood(); //按上下左右鍵,蛇改變移動方向 window.addEventListener(’keyup’, function (e) {var direct = e.keyCode;switch (direct) { case 37:if (Snake.direct == 'right') { return;}Snake.direct = 'left';break; case 38:if (Snake.direct == 'down') { return;}Snake.direct = 'up';break; case 39:if (Snake.direct == 'left') { return;}Snake.direct = 'right';break; case 40:if (Snake.direct == 'up') { return;}Snake.direct = 'down';break;} }) //長按方向鍵加速移動 var lastKey = -1; window.addEventListener(’keydown’, function (e) {if (e.keyCode == lastKey) { switch (e.keyCode) {case 37: if (Snake.direct == 'right') {return; } Snake.direct = 'left'; break;case 38: if (Snake.direct == 'down') {return; } Snake.direct = 'up'; break;case 39: if (Snake.direct == 'left') {return; } Snake.direct = 'right'; break;case 40: if (Snake.direct == 'up') {return; } Snake.direct = 'down'; break; } Snake.move();}lastKey = e.keyCode; })}) </script></body> </html>

效果圖:

JavaScript實現貪吃蛇游戲

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

標簽: JavaScript
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲在线国产日韩欧美| 免费人成在线不卡| 久久久蜜桃一区二区人| 日韩精品三级| 丝袜av一区| 精品日韩在线| 亚洲欧美专区| 激情久久久久久| 国产精品蜜月aⅴ在线| 欧美亚洲国产激情| 麻豆91在线播放| 国产视频一区三区| 日韩成人三级| 日韩精品永久网址| 韩国女主播一区二区三区| 超碰超碰人人人人精品| 日韩深夜视频| 国产一区2区在线观看| 久久一区精品| 国产精品午夜av| 欧美天堂在线| 国产日韩欧美在线播放不卡| 中文字幕日韩高清在线| 狠狠干成人综合网| 综合激情在线| 午夜视频一区二区在线观看| 伊人久久大香线蕉av不卡| 色爱综合av| 日韩不卡一区二区| 欧美欧美黄在线二区| 久久爱www.| 国产成人精品一区二区三区视频| 麻豆国产精品视频| 国产麻豆久久| 99国产精品视频免费观看一公开| 蜜桃av一区| 中文字幕av一区二区三区人| 日本一区二区三区中文字幕| 欧美午夜网站| 三上亚洲一区二区| 国产网站在线| 四虎影视精品| 亚洲综合三区| 国产精久久一区二区| 天堂а√在线最新版中文在线| 久久久亚洲一区| 亚洲免费一区二区| 亚洲+小说+欧美+激情+另类| 国产在线观看www| 蜜桃一区二区三区| 蜜桃tv一区二区三区| 一区二区精品| 免费福利视频一区二区三区| 91久久午夜| 精品视频黄色| 日韩欧美在线精品| 国产一区精品福利| 久久www成人_看片免费不卡| 精品精品国产三级a∨在线| www成人在线视频| 国产亚洲精品美女久久| 日韩一区二区久久| 亚洲国产专区校园欧美| 色爱av综合网| 99riav1国产精品视频| 在线亚洲国产精品网站| 在线一区二区三区视频| 亚洲日本久久| 久久久91麻豆精品国产一区| 麻豆精品新av中文字幕| 日本蜜桃在线观看视频| av最新在线| 欧美日韩中文字幕一区二区三区| 欧美一级一区| 视频在线在亚洲| 亚洲国产日韩欧美在线| 亚洲精品成人| 久久不卡日韩美女| 国产在线不卡| 欧美午夜三级| 久久激情网站| 青青国产91久久久久久| 日韩深夜视频| 首页国产欧美久久| 久久一区二区三区喷水| 国产一区二区三区91| 日韩av网站免费在线| yellow在线观看网址| 日韩亚洲在线| 国产一区二区三区精品在线观看| 亚洲女同一区| 在线人成日本视频| 91大神在线观看线路一区| 亚洲国产日韩欧美在线| 精品五月天堂| 国产剧情在线观看一区| 99久久久久| 福利一区在线| 国产精品午夜一区二区三区| 91综合久久爱com| 午夜在线精品偷拍| 色婷婷亚洲mv天堂mv在影片| 麻豆中文一区二区| 模特精品在线| 黄色不卡一区| av中文字幕在线观看第一页| 日韩精品免费视频一区二区三区| 国产麻豆久久| av在线资源| 91综合网人人| 中文在线а√天堂| 久久影院资源站| 精品色999| 免费一级欧美在线观看视频 | 蜜臀久久久99精品久久久久久| 国产一区二区三区不卡视频网站 | 日韩精品麻豆| 日本精品黄色| 久久99偷拍| 久久精品国产亚洲aⅴ | 红杏一区二区三区| 国产精选一区| 国产日韩在线观看视频| 中文字幕免费一区二区| 日韩亚洲国产欧美| 亚洲一区二区动漫| 国产麻豆综合| 日韩精品三区四区| 欧洲亚洲一区二区三区| 精品国产一区二区三区av片| 国产激情一区| 九九精品调教| 午夜一区在线| 欧美久久一区二区三区| 视频一区中文字幕精品| 日韩精品国产精品| 美腿丝袜亚洲三区| 精品捆绑调教一区二区三区| 国产精品极品| 国产美女久久| 精品久久亚洲| 69堂精品视频在线播放| 美女网站久久| 日韩成人av影视| 欧美激情福利| 蜜臀精品一区二区三区在线观看 | 亚洲精品永久免费视频| 久久精品国产精品亚洲毛片| 国产色播av在线| 精品99在线| 亚洲天堂成人| 婷婷亚洲成人| 电影天堂国产精品| 国产美女撒尿一区二区| 91成人精品视频| 国产99精品| 久久国产视频网| 亚洲香蕉网站| 麻豆免费精品视频| 亚洲成av人片一区二区密柚| 香蕉久久99| 欧美亚洲tv| 在线视频免费在线观看一区二区| 国产精品午夜一区二区三区| 国产视频一区免费看| 91精品韩国| 综合色一区二区| 亚洲精品一区二区妖精| 国产传媒在线| 国产福利91精品一区二区| 日本久久一区| 亚洲欧美高清| 女人av一区| 久久精品不卡| 国产传媒av在线| 国产精品亚洲二区| 日韩va欧美va亚洲va久久| 午夜久久av| 日本少妇一区二区| 日韩综合精品| 偷拍精品精品一区二区三区| 免费视频一区二区三区在线观看| 日韩超碰人人爽人人做人人添| 日韩在线观看一区二区| 欧美美女一区| av成人国产| 亚洲欧洲一区二区天堂久久| 免费视频久久| 午夜在线精品偷拍| 亚洲制服少妇| 欧美 日韩 国产精品免费观看| 麻豆91在线播放| 成人精品高清在线视频| 欧美黄色一区二区| 国产一区二区三区四区五区| 黑人精品一区| 不卡中文字幕| 婷婷综合一区| 麻豆视频一区二区| 91精品综合|