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

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

JavaScript實現貪吃蛇游戲

瀏覽:36日期: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久久,三上悠亚国产精品一区二区三区
亚洲v天堂v手机在线| 国产麻豆久久| 欧美亚洲自偷自偷| 国产免费av国片精品草莓男男| 国产精品99久久久久久董美香| 欧美日韩亚洲三区| 精品三级久久久| 91精品一区二区三区综合| 蜜桃伊人久久| 国产精品夜夜夜| 蜜臀久久精品| 欧美专区18| 国产精品a级| 欧美成人亚洲| 欧美日韩精品一区二区三区视频 | 午夜在线观看免费一区| 日本久久二区| 日韩精品永久网址| 国产午夜久久| 国产激情欧美| 欧美日韩国产免费观看视频| 91九色综合| 丝袜美腿一区| 欧美在线看片| 激情综合在线| 国产精品手机在线播放| 久久精品国产99久久| 亚洲欧美在线专区| 97精品一区二区| 亚洲一区二区小说| 最新中文字幕在线播放 | japanese国产精品| 国产精品主播在线观看| 亚洲成人日韩| 精品无人区麻豆乱码久久久 | 综合干狼人综合首页| 91一区二区三区四区| 亚洲精品乱码| 激情综合自拍| 91一区二区| 日韩av成人高清| 欧美福利在线| 成人国产精品久久| 日本不卡视频在线| 久久影视一区| 欧美亚洲tv| 热久久免费视频| 在线观看精品| 欧美a在线观看| 亚洲精品大全| 婷婷丁香综合| 深夜福利视频一区二区| 久久国内精品| 丝袜美腿亚洲一区| 99精品视频在线观看免费播放| 国产另类在线| 久久亚洲视频| 欧美日韩水蜜桃| 国内精品伊人| 国产精品宾馆| 亚洲美女91| 午夜在线精品| 欧美日韩国产精品一区二区亚洲| 91视频一区| 免费在线播放第一区高清av| 香蕉久久久久久| 中文在线一区| 久久精品影视| 久久久久免费| 久久久久亚洲精品中文字幕| 久久精品xxxxx| 亚洲美女久久| 综合精品一区| 视频一区中文字幕| 国产女优一区| 激情久久久久久久| 日本少妇一区| 欧美freesex黑人又粗又大| 国产一区二区三区网| 久久99久久久精品欧美| 亚洲免费资源| 日韩一区二区三区四区五区| 在线精品观看| 蜜臀久久99精品久久久久宅男| 美女少妇全过程你懂的久久| 日本欧美不卡| 久久国产欧美| 久久一区二区三区电影| 亚洲一级特黄| 999在线观看精品免费不卡网站| 午夜av成人| 日韩和的一区二在线| 日韩免费视频| 免费污视频在线一区| 中文字幕系列一区| 欧美日韩色图| 午夜日韩在线| 国产亚洲高清视频| 免费的成人av| 日本成人在线不卡视频| 日本午夜免费一区二区| 国产欧美日韩视频在线| 国产激情综合| av免费不卡国产观看| 日韩欧美精品| 亚洲成av人片一区二区密柚| 久久久噜噜噜| 午夜国产精品视频| 亚洲欧美日本视频在线观看| 天使萌一区二区三区免费观看| 亚洲香蕉久久| 清纯唯美亚洲综合一区| 久久国产精品色av免费看| 国产精品天堂蜜av在线播放| 精品国产网站| 欧美成人基地| 国产精品婷婷| 天海翼亚洲一区二区三区| 日本aⅴ亚洲精品中文乱码| 国产美女视频一区二区| 国产精品地址| 久久天堂av| 欧美在线综合| 国产精品主播| 久久久久.com| 免费成人在线观看| 欧美交a欧美精品喷水| 欧美羞羞视频| 视频精品一区二区| 国产日韩视频在线| 欧美国产一级| 亚洲激情欧美| 日本不卡在线视频| 国产成人a视频高清在线观看| 日韩精品一卡| 日韩中文欧美在线| 国产精品天天看天天狠| 日韩欧美自拍| 樱桃视频成人在线观看| 欧美理论视频| 老牛影视一区二区三区 | 亚洲成人va| 最新亚洲一区| 国产日韩欧美中文在线| 黄色网一区二区| 视频在线观看一区| 久久伊人国产| 亚洲欧美日韩国产综合精品二区| 国产日韩欧美一区二区三区在线观看| 麻豆精品视频在线| 亚洲午夜黄色| 国产亚洲高清一区| 精品亚洲美女网站| 97久久亚洲| 久久久久99| 91成人福利| 香蕉精品久久| 国产丝袜一区| 欧美在线亚洲综合一区| 国产精品视频一区二区三区综合| 久久中文字幕二区| 国产精品久久久久9999高清| 欧美日韩亚洲在线观看| 国产九九精品| 亚洲福利国产| 欧美国产极品| 国产精品丝袜xxxxxxx| 美女视频黄免费的久久| 99视频一区| 国产精品精品国产一区二区| 亚州av日韩av| 欧美综合另类| 精品国产亚洲一区二区在线观看| 99在线精品免费视频九九视 | 欧美/亚洲一区| 毛片不卡一区二区| 国产亚洲一级| 色偷偷偷在线视频播放| 国产午夜久久av| 视频一区免费在线观看| 亚洲黄色免费av| 久久国产麻豆精品| 久久香蕉精品| 亚洲二区免费| 黄色网一区二区| 欧美精品国产白浆久久久久| 久久福利毛片| 欧美亚洲国产激情| 国模大尺度视频一区二区| 亚洲精品日本| 亚洲成人精选| 国产一区三区在线播放| 日韩国产欧美一区二区三区| 99香蕉国产精品偷在线观看| 中文在线а√天堂| 亚洲精品乱码久久久久久蜜桃麻豆| 美女网站一区| 日韩欧美一区二区三区免费观看| 国产精品亚洲四区在线观看| 亚洲欧洲专区|