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

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

原生JS實現貪吃蛇小游戲

瀏覽:224日期:2024-05-20 14:59:13

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

思路:在頁面上添加一個地圖,以提供邊界,在地圖中隨機出現食物,給蛇身設置一個初始長度,用鍵盤方向鍵控制蛇的走向,當蛇觸碰到食物時(既坐標重復時),增加蛇身長度,碰到墻壁或自身時,程序停止,游戲結束。

HTML結構:

<body> <div id='map'></div></body>

CSS樣式:

<style> #map{ width: 600px; height: 300px; background: #ccc; border: 5px solid blacks; margin: 0 auto; position: relative;}</style>

js實現功能:

<script> class Map{ //地圖 constructor(){ this.mapEle = document.getElementById('map'); this.w = this.mapEle.offsetWidth; this.h = this.mapEle.offsetHeight; } } class Food{ //食物 constructor(){ this.w = 20; this.h = 20; this.x = 0; this.y = 0; this.c = 'orange'; this.createEle(); } createEle(){ this.foodEle = document.createElement('div'); this.foodEle.style.cssText = `width:${this.w}px;height:${this.h}px;background:${this.c};position:absolute;left:${this.x * this.w}px;top:${this.y * this.h}px;border-radius: 40%;`; m.mapEle.appendChild(this.foodEle); } randomPos(){ this.x = random(0,(m.w-this.w) / this.w); this.y = random(0,(m.h-this.h) / this.h); this.foodEle.style.left = this.x * this.w + 'px'; this.foodEle.style.top = this.y * this.h + 'px'; } } class Snake{ //身體 constructor(){ this.w = 20; this.h = 20; this.body = [{ ele:null,x:4,y:3,c:randomColor() },{ ele:null,x:3,y:3,c:randomColor() },{ ele:null,x:2,y:3,c:randomColor() }]; this.d = 'right'; //設置默認行走方向 this.createEle(); } createEle(){ for(var i=0;i<this.body.length;i++){ if(!this.body[i].ele){ this.body[i].ele = document.createElement('div'); m.mapEle.appendChild(this.body[i].ele); } this.body[i].ele.style.cssText = `width:${this.w}px;height:${this.h}px;background:${this.body[i].c};position:absolute;left:${this.body[i].x * this.w}px;top:${this.body[i].y * this.h}px;color:#fff;border-radius: 40%;`; } this.body[0].ele.innerHTML = '00' setTimeout(()=>{this.move()},300); } move(){ 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; } switch(this.d){ case 'left':this.body[0].x -= 1;break; case 'right':this.body[0].x += 1;break; case 'top':this.body[0].y -= 1;break; case 'bottom':this.body[0].y += 1;break; } if(this.body[0].x < 0 || this.body[0].y < 0 || this.body[0].x > ((m.w-this.w) / this.w) || this.body[0].y > ((m.h-this.h) / this.h)){ alert('撞墻了'); return; } if(this.body[0].x === f.x && this.body[0].y === f.y){ this.body.push({ele:null,x:this.body[this.body.length-1].x,y:this.body[this.body.length-1].y,c:randomColor()}); f.randomPos(); } for(var i=1;i<this.body.length;i++){ if(this.body[0].x == this.body[i].x && this.body[0].y == this.body[i].y){ alert('撞到自己了'); return; } } this.createEle(); } direct(type){ switch(type){ case 37: if(this.d === 'right') break; this.d = 'left';break; case 38: if(this.d === 'bottom') break; this.d = 'top';break; case 39: if(this.d === 'left') break; this.d = 'right';break; case 40: if(this.d === 'top') break; this.d = 'bottom';break; } } } function random(a,b){ return Math.round(Math.random()*(a-b)+b); } function randomColor(){ return `rgb(${random(0,255)},${random(0,255)},${random(0,255)})`; } var m = new Map(); var f = new Food(); f.randomPos(); var s = new Snake(); document.onkeydown = function(eve){ var e = eve || window.event; var code = e.keyCode || e.which; s.direct(code); }</script>

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

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

標簽: JavaScript
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美日本久久| 欧美日韩伊人| 日韩电影二区| 99热精品久久| 久久亚洲国产精品一区二区| 亚洲五月综合| 国产精品最新自拍| 国际精品欧美精品| 欧美日韩精品一区二区视频| 久久成人国产| 国产精品毛片久久久| 中文在线资源| 天堂av在线一区| 国产欧美三级| 国产精品白丝久久av网站| 精品久久免费| 欧美日韩少妇| 欧美一级全黄| 欧美日韩精品免费观看视完整| 亚洲一区不卡| 欧美国产免费| 激情综合网站| 国产亚洲久久| 亚洲www免费| 综合激情视频| 精品中文字幕一区二区三区| 欧美日韩一二| 国产日韩在线观看视频| 欧美日韩一二三四| 日本电影久久久| 色一区二区三区| 亚州国产精品| 999国产精品永久免费视频app| 综合激情视频| 97精品在线| 日韩福利视频网| 99久久视频| 国产精品天天看天天狠| 好吊日精品视频| 老司机免费视频一区二区三区| 欧美美女一区| 精品三级av| 日韩有码av| 久久国产毛片| 国产精品22p| 久久亚洲风情| 欧美日韩国产v| 欧美日韩1区2区3区| 亚洲男女av一区二区| 成人午夜网址| 欧美亚洲一区二区三区| 亚洲黄色影院| 肉色欧美久久久久久久免费看| 91精品国产经典在线观看| 午夜久久久久| 人人精品亚洲| 成人午夜在线| 国产精品17p| 国产精品视频一区二区三区四蜜臂 | 亚洲激情中文在线| 精品亚洲a∨一区二区三区18| 日韩中文字幕区一区有砖一区 | 91精品在线观看国产| 欧美精品99| 日韩一区二区三区免费视频 | 国产精品伊人| 综合欧美精品| 三级欧美在线一区| 九九在线精品| 久久久久一区| 国产不卡人人| 国产一区二区三区亚洲| 国产精品视频首页| 欧美永久精品| 日韩精品视频中文字幕| 高清在线一区| 欧美网站在线| 久久婷婷丁香| 亚洲天堂免费电影| 麻豆久久久久久| 国产一精品一av一免费爽爽| 日韩1区2区日韩1区2区| 蜜桃av一区二区| 视频精品一区二区| 免费精品视频在线| 香蕉久久久久久久av网站| 欧美日韩国产在线观看网站| 久久久精品网| 美女亚洲一区| 99re国产精品| 国产高清一区| 在线亚洲精品| 首页亚洲欧美制服丝腿| 国产精品美女久久久浪潮软件| 99精品综合| 国产精品日韩欧美一区| 亚洲丝袜美腿一区| 日韩不卡一区二区三区| 国产精品久久久久久妇女| 国产精品网址| 国产精选在线| 激情综合在线| 亚洲欧美日韩国产综合精品二区| 日韩午夜电影| 一区二区三区四区精品视频| 日本伊人午夜精品| 欧美日韩xxxx| 精品日韩一区| 久久蜜桃av| 国产精品毛片在线| 日韩激情综合| 国产一区二区三区亚洲综合| 国产精品蜜芽在线观看| 欧美不卡在线| 亚洲免费福利一区| 久久精品国产99国产| xxxxx性欧美特大| 国产视频欧美| 国产精品一区二区三区www| 日韩88av| 日韩亚洲精品在线| 日本va欧美va精品发布| 精品国产a一区二区三区v免费| 日韩不卡免费高清视频| 影音先锋久久| 国产精品一区免费在线| 亲子伦视频一区二区三区| 丝袜美腿成人在线| 国产精品v日韩精品v欧美精品网站| 国产中文在线播放| 免费日韩av片| 国产成人免费精品| 视频一区中文字幕| 欧美精品97| 91精品99| 美女毛片一区二区三区四区最新中文字幕亚洲| av免费不卡国产观看| 亚洲少妇一区| 国产精品4hu.www| 视频福利一区| 日本中文字幕视频一区| 日本а中文在线天堂| 免费精品视频在线| 麻豆一区二区三| 在线一区免费| 精品黄色一级片| 噜噜噜躁狠狠躁狠狠精品视频| 日韩成人精品一区二区三区 | 亚洲综合婷婷| 91亚洲成人| 亚洲精品无播放器在线播放| 国产精品成人自拍| 国产亚洲永久域名| 国产一区二区三区四区五区传媒| 亚洲在线成人| 国产一区2区在线观看| 亚洲人成在线影院| 日韩伦理一区| 国产精品亲子伦av一区二区三区 | 国产图片一区| 日韩午夜av| 亚洲国产成人二区| 亚洲小说春色综合另类电影| 中文字幕人成乱码在线观看| 日韩一区网站| 91精品观看| 精品国产精品久久一区免费式| 水蜜桃久久夜色精品一区的特点 | 国产精品久久久久久久久久齐齐 | 日本午夜精品视频在线观看| 久久亚洲专区| 精品三级在线观看视频| 亚洲一二av| 免费视频国产一区| 超碰成人av| 国产精品欧美日韩一区| 美美哒免费高清在线观看视频一区二区| 国产精品原创| 国产福利一区二区精品秒拍| 蜜桃91丨九色丨蝌蚪91桃色| 91精品婷婷色在线观看| 国产欧美大片| 香蕉久久一区| 久久九九精品| 黄色成人精品网站| 日本久久精品| 国产精品激情| 日本成人在线不卡视频| 99riav国产精品| 国产99精品| 日韩在线欧美| 伊人网在线播放| 激情久久99| 精品一区二区三区中文字幕| 久久国产精品免费一区二区三区| 日韩精品欧美精品| 日韩制服丝袜先锋影音| 激情91久久| 伊人精品视频| 国产精品视区|