JavaScript實(shí)現(xiàn)一個(gè)空中避難的小游戲
前言
最近在看js中的事件,之前也一直有用到事件,用到最多的就是onclick單擊事件,還有填寫表單信息時(shí)的用到的onfocus聚焦時(shí)間,和onblur事件,最近看到了onmousemove鼠標(biāo)移動(dòng)事件,覺得很神奇,就突然很想寫一個(gè)小游戲,用到了setInterval函數(shù)。游戲的功能也很簡(jiǎn)單,就是天上掉紙片,小人兒要不停的躲,一旦紙片和小人兒相撞,就會(huì)game over!
代碼如下:
<!DOCTYPE html> <html> <head> <style> .move { margin-top: 0px; width:40px; height: 50px; background: #ff0; position:absolute; z-index: 999; } .self { width:40px; height: 50px; background: #f0f; position:absolute; margin-top: 600px; margin-left: 643px; z-index: 999; } .self img { width:40px; height: 50px; border-radius: 20px; } </style> <title>圖圖up up</title> </head> <body onload="moveDiv()"> <!--12個(gè)div就是空中的小紙片--> <div class="move" style="margin-left:100px"> </div> <div class="move" style="margin-left:200px"> </div> <div class="move" style="margin-left:300px"> </div> <div class="move" style="margin-left:400px"> </div> <div class="move" style="margin-left:500px"> </div> <div class="move" style="margin-left:600px"> </div> <div class="move" style="margin-left:700px"> </div> <div class="move" style="margin-left:800px"> </div> <div class="move" style="margin-left:900px"> </div> <div class="move" style="margin-left:1000px"> </div> <div class="move" style="margin-left:1100px"> </div> <div class="move" style="margin-left:1200px"> </div> <!--小人兒用一張圖片代替--> <div id="self" class="self"> <img src="images/tutu.jpg"> </div> </body> <script type="text/javascript"> var alldiv = document.querySelectorAll('.move'); var selfdiv = document.getElementById("self"); var timer, flag; function moveItem() { //用隨機(jī)數(shù)決定哪一張紙片掉落 for (var j = 0; j < Math.round(Math.random()*11); j++) { var i = Math.round(Math.random()*11); alldiv[i].style.top = alldiv[i].offsetTop + 20 +"px"; //掉落過(guò)程中改變紙片的顏色 var rgb='rgb('+Math.floor(Math.random()*255)+',' +Math.floor(Math.random()*255)+',' +Math.floor(Math.random()*255)+')'; alldiv[i].style.backgroundColor = rgb; if (alldiv[i].offsetTop >= 600) { alldiv[i].style.top = "50px"; //當(dāng)紙片落到底部,又重新回到起點(diǎn) } } } function moveDiv() { timer = setInterval(moveItem,20); //每隔20ms掉落 flag = setInterval(meeting,1); //間隔1ms判斷是否相撞 } var selfdiv = document.getElementById("self"); selfdiv.onmousedown = function(e) //鼠標(biāo)點(diǎn)擊小人兒開始移動(dòng) { document.onmousemove = function(e) //小人兒跟著鼠標(biāo)移動(dòng) { if (e.clientY > 600) { selfdiv.style.marginTop = "600px"; //如果到達(dá)屏幕底部就不再往下 } else if(e.clientX > 1300) { selfdiv.style.marginLeft = "1300px"; //到達(dá)最右部就回到不再往右 } else { //小人兒的位置始終等于鼠標(biāo)的位置 selfdiv.style.marginTop = e.clientY + "px"; selfdiv.style.marginLeft = e.clientX + "px"; } } } function meeting() { for (var i = 0; i < alldiv.length; i++) { //判斷是否相撞 if (Math.abs(alldiv[i].offsetTop-selfdiv.offsetTop) <= 50 && Math.abs(alldiv[i].offsetLeft-selfdiv.offsetLeft) <= 40) { clearInterval(flag); clearInterval(timer); alert("一不小心撞到了?。?!游戲結(jié)束"); } } } </script> </html>
效果如圖:
全部的代碼就這些,動(dòng)圖做的效果不是很好,第一次做動(dòng)圖,發(fā)現(xiàn)有很多在線網(wǎng)站都可以,做起來(lái)很簡(jiǎn)單,還是免費(fèi)的,開心?。?!
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
詳解webpack的proxyTable無(wú)效的解決方案
這篇文章主要介紹了詳解webpack的proxyTable無(wú)效的解決方案,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-06-06uni-app開發(fā)微信小程序之H5壓縮上傳圖片的問(wèn)題詳解
這次項(xiàng)目中做了一個(gè)圖片上傳,要求是大于2MB的就壓縮成2MB一下的再上傳,下面這篇文章主要給大家介紹了關(guān)于uni-app開發(fā)微信小程序之H5壓縮上傳圖片的問(wèn)題,需要的朋友可以參考下2023-03-03動(dòng)態(tài)生成的IFRAME,設(shè)置SRC時(shí)的問(wèn)題解決分析
動(dòng)態(tài)生成的IFRAME,設(shè)置SRC時(shí)的,不同位置帶來(lái)的影響。 以下所說(shuō)的是在IE7下運(yùn)行的。IE6下也是同樣。 在這個(gè)blog中,直接點(diǎn)擊運(yùn)行代碼,和把下面代碼保存到為網(wǎng)頁(yè)在運(yùn)行(以本地文件或域名訪問(wèn)),效果不一樣。 先看例子:2008-04-04JS實(shí)現(xiàn)控制表格行文本對(duì)齊的方法
這篇文章主要介紹了JS實(shí)現(xiàn)控制表格行文本對(duì)齊的方法,涉及javascript操作表格樣式的相關(guān)技巧,需要的朋友可以參考下2015-03-03javascript獲取所有同類checkbox選項(xiàng)(實(shí)例代碼)
javascript獲取所有同類checkbox選項(xiàng)的簡(jiǎn)單實(shí)例。需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2013-11-11springMvc 前端用json的方式向后臺(tái)傳遞對(duì)象數(shù)組方法
今天小編就為大家分享一篇springMvc 前端用json的方式向后臺(tái)傳遞對(duì)象數(shù)組方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08