亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

javascript實現(xiàn)貪吃蛇小練習(xí)

瀏覽:9日期:2023-06-19 14:20:54

本文實例為大家分享了js實現(xiàn)貪吃蛇的具體代碼,供大家參考,具體內(nèi)容如下

游戲思路:

創(chuàng)建方塊、控制按鈕(showBlock) 方塊移動(點擊開始,不斷創(chuàng)建并移除前面的方塊,用到隊列先進(jìn)先出) 控制移動(doUpdoDowndoLeftdoRight,加入用鍵盤控制) 產(chǎn)生食物方塊(generateFood) 吃到食物變長(當(dāng)方塊位置相同時,吃食物) 判斷撞墻、撞到自己游戲結(jié)束 設(shè)置積分

<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <meta name='viewport' content='width=device-width, initial-scale=1.0'> <title>Document</title></head><body> <style> body { margin: 0; padding: 0; } .content { width: 800px; height: 400px; background-color: gray; display: absolute; } </style> <div class='content'> </div> <button onclick='start()'>開始游戲</button> <button onclick='doUp()'>上</button> <button onclick='doDown()'>下</button> <button onclick='doLeft()'>左</button> <button onclick='doRight()'>右</button> <div id='score'>0</div> <script> //定義參數(shù) var snackBlock = {}; snackBlock.top = 20; snackBlock.left = 20; var firstDiv = showBlock(snackBlock.left, snackBlock.top, 'red'); var snackDivArray = [];//裝方塊的數(shù)組 snackDivArray.push(firstDiv); var left = 1, right = 2, up = 3, down = 4; var direction = right; var food = generateFood();//生成食物 var hasEat = false; var score = 0; function generateFood() { var left = getRandomNum(39); var top = getRandomNum(19); var foodBlock = showBlock(left, top, 'pink'); foodBlock.left = left; foodBlock.top = top; return foodBlock; } function getRandomNum(max) { return Math.round(Math.random() * max) * 20; } function start() { var interval = setInterval(function () { var newBlock = {}; switch (direction) { case up: newBlock.top = snackBlock.top - 20; newBlock.left = snackBlock.left; break; case down: newBlock.top = snackBlock.top + 20; newBlock.left = snackBlock.left; break; case left: newBlock.top = snackBlock.top; newBlock.left = snackBlock.left - 20; break; case right: newBlock.top = snackBlock.top; newBlock.left = snackBlock.left + 20; break; } var currentLeft = newBlock.left; var currentTop = newBlock.top; var eat = false; //吃食物 if (currentLeft == food.left && currentTop == food.top) { removeBlock(food); food = generateFood(); eat = true; hasEat = true; score += 10;//吃一個加10分 document.getElementById('score').innerHTML = score;//寫入div } snackBlock = newBlock; //是否撞墻 if (currentLeft < 0 || currentLeft >= 800 || currentTop < 0 || currentTop >= 400) { alert('game over!'); clearInterval(interval); return; } if (eat == false) { //移除尾巴 removeBlock(snackDivArray.shift(div)); } //是否撞到自己 snackDivArray.forEach(function (item, index, array) { if (item.top == currentTop && item.left == currentLeft) { alert('game over!'); clearInterval(interval); return; } }); //創(chuàng)建新的身體 var div = showBlock(newBlock.left, newBlock.top, 'red'); div.left = newBlock.left; div.top = newBlock.top; snackDivArray.push(div); }, 300); } //方向控制 function doUp() { if (direction == down && hasEat) { return; } direction = up; } function doDown() { if (direction == up && hasEat) { return; } direction = down; } function doRight() { if (direction == left && hasEat) { return; } direction = right; } function doLeft() { if (direction == right && hasEat) { return; } direction = left; } function showBlock(left, top, color) {//產(chǎn)生方塊 var content = document.getElementById('content'); var snackDiv = document.createElement('div'); snackDiv.style.width = '20px'; snackDiv.style.height = '20px'; snackDiv.style.left = left + 'px'; snackDiv.style.top = top + 'px'; snackDiv.style.background = color; snackDiv.style.position = 'absolute'; content.appendChild(snackDiv); return snackDiv; } function removeBlock(div) {//移除方塊 div.parentNode.removeChild(div); } //鍵盤控制方向 document.onkeydown = function (e) { if (e && e.keyCode == 38) { doUp(); } else if (e && e.keyCode == 40) { doDown(); } else if (e && e.keyCode == 37) { doLeft(); } else if (e && e.keyCode == 39) { doRight(); } } </script></body></html>

更多有趣的經(jīng)典小游戲?qū)崿F(xiàn)專題,分享給大家:

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

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

python俄羅斯方塊游戲集合

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

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

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

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 色综合久久久久久久 | 国产精品国产精品国产三级普 | 天天射夜夜骑 | 日韩一区二区三区不卡视频 | 青青免费视频在线 | 国产一区二区三区免费 | 亚洲春色在线视频 | 青草国产视频 | 在线久综合色手机在线播放 | 久久99精品视频在线在线观看 | 欧美成人免费香蕉 | 国产一级特黄a大片免费 | 国内免费一区二区三区视频 | 日韩在线一区二区三区视频 | 最近手机中文在线视频 | 小泽玛利亚一区二区在线看 | 久操免费在线观看 | 91精品国产99久久 | 日本一级毛片2021免费 | 91短视频免费版 | 久久一区二区三区不卡 | 夜色www| 视频一区国产精品 | 综合亚洲欧美日韩一区二区 | 国产a级午夜毛片 | 久久精品国产99国产精品免费看 | 日韩一级a毛片欧美区 | 久久久国产高清 | 曰本女人一级毛片看一级毛 | 美国一级大毛片 | 久草在线观看福利视频 | 色多多在深夜释放自己黄 | 123456成年免费视频 | 小黄片毛片 | 精品视频在线观看免费 | 欧美日韩国产片 | 欧美国产日韩在线播放 | 欧美一区二区三区成人看不卡 | 久久久久久久国产免费看 | 综合图色| 成人黄色免费观看 |