![Javascript實現(xiàn)打地鼠小游戲_第1頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/12/8a8ab482-550b-4b9b-8e77-a1ebbb4c897f/8a8ab482-550b-4b9b-8e77-a1ebbb4c897f1.gif)
![Javascript實現(xiàn)打地鼠小游戲_第2頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/12/8a8ab482-550b-4b9b-8e77-a1ebbb4c897f/8a8ab482-550b-4b9b-8e77-a1ebbb4c897f2.gif)
![Javascript實現(xiàn)打地鼠小游戲_第3頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/12/8a8ab482-550b-4b9b-8e77-a1ebbb4c897f/8a8ab482-550b-4b9b-8e77-a1ebbb4c897f3.gif)
![Javascript實現(xiàn)打地鼠小游戲_第4頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/12/8a8ab482-550b-4b9b-8e77-a1ebbb4c897f/8a8ab482-550b-4b9b-8e77-a1ebbb4c897f4.gif)
![Javascript實現(xiàn)打地鼠小游戲_第5頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/12/8a8ab482-550b-4b9b-8e77-a1ebbb4c897f/8a8ab482-550b-4b9b-8e77-a1ebbb4c897f5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、JavaScrip便現(xiàn)打地鼠小游戲本項目名為打地鼠,是大家耳熟能詳?shù)囊豢罱?jīng)典的小游戲。 游戲最終將會以html 文件形式完成,需要使用Firefox等瀏覽器打開才能看到游戲的最終效果。止匕外, 游戲?qū)捎肑avaScript實現(xiàn)整個邏輯流程,所以建議沒有 JavaScript基礎(chǔ)的同 學(xué)首先學(xué)習(xí)javaScript教程。游戲最終效果截圖如下:分?jǐn)?shù)】0 命中率t 0倒計時t 22:、核心方法介紹在打地鼠小游戲中將會多次用到JavaScript中的計時函數(shù):? setTimeout() ? setInterval()這兩個函數(shù)的作用很大,不僅僅在本次的小游戲中,在很多的JavaScript程序中
2、都會有 他們”的身影。接下來將會詳細(xì)的剖析這兩個函數(shù)。1. setTimeout()用于在指定的毫秒數(shù)后調(diào)用函數(shù)或計算表達(dá)式(只執(zhí)行一次,可通過創(chuàng)建一個函數(shù)循環(huán)重復(fù)調(diào)用setTimeout ,來實現(xiàn)重復(fù)操作)用法示例? setTimeout("functionName()",1000);? setTimeout(functionName,1000);調(diào)用一個無參的方法很簡單,但當(dāng)我們需要調(diào)用一個帶有參數(shù)的函數(shù)時,問題就來了。解決的方法就是再寫一個函數(shù),該函數(shù)返回一個不帶參數(shù)的函數(shù)。示例如下:function show(name) alert(name +", 你好
3、! ");function returnFun(name) return function() show(name); setTimeout(returnFun("小明"),1000);clearTimeout()立即終止setTimeout() 方法。示例:var timeId = set Timeout(.);clearTimeout(timeId);2. setInterval()可按照指定的周期(毫秒)來調(diào)用函數(shù)或計算表達(dá)式。與setTimeout() 不同,不論調(diào)用的函數(shù)或計算表達(dá)式需要多長時間才能執(zhí)行完, 它都只是簡單的每隔一定時間就重復(fù)執(zhí)行一次那個函
4、數(shù)或計算表達(dá)式。用法示例? setInterval("functionName()",1000);? setInterval(functionName,1000);clearInterval()立即終止setInterval() 方法。示例:var interld =set Interval,.);clearlnterval(interld);、游戲制作3. 功能邏輯設(shè)計功能包括:? 得分統(tǒng)計? 計算成功率? 老鼠圖片的隱藏、顯示? 判斷是否點中老鼠? 最終結(jié)果顯不'? 錯誤提示流程設(shè)計:? 點擊開始游戲”按鈕游戲開始,否則將提示 請點擊開始游戲”字樣? 分?jǐn)?shù)、命中
5、率顯示重置為 “0,”倒計時開始(默認(rèn)為 30秒)? 老鼠圖片不斷顯示、隱藏,玩家可點擊鼠標(biāo)左鍵進行游戲? 當(dāng)30秒倒計時結(jié)束或者玩家主動點擊結(jié)束按鈕”時,游戲結(jié)束并顯示游戲結(jié)果游戲設(shè)計簡單, 并未添加其他豐富的游戲設(shè)計, 也沒有添加動畫、 聲音等特殊效果,其目的是想帶領(lǐng)大家從簡潔的游戲邏輯設(shè)計中清楚地體會到從設(shè)計到開發(fā)、完善的樂趣,能通過簡單的幾行代碼也能輕松實現(xiàn)一個屬于自己制作的小游戲。4. 框架設(shè)計游戲通過 html 文件實現(xiàn),自然離不開html 標(biāo)簽,常見的打地鼠游戲都是規(guī)則的幾個固定位置隨機出現(xiàn)老鼠,因此本次游戲設(shè)計將會采用 <table> 標(biāo)簽來布局,得分、命中率等結(jié)果
6、顯示將使用<input>標(biāo)簽。html代碼(包括cs§如下:<!DOCTYPE html><html><head><title> 打地鼠 </title><meta http-equiv="Content-Type" content="text/html;charset=utf-8"/><style type="text/css">#content width: 960px;margin: 0 auto;text-align: c
7、enter;table margin: 0 auto;table:hover cursor: url('img/chuizi.png'),auto;/此處圖片路徑要依據(jù)自己的路徑來修改td width: 95px;height: 95px;background-color: #00ff33;</style><script> / 下一節(jié)將會詳細(xì)講解</script></head><body><div id="content"><input type="button"
8、; value=" 開始游戲 " onclick="GameStart()"><input type="button" value=" 結(jié)束游戲 " onclick="GameOver()"><form name="form1"><label> 分?jǐn)?shù):</label><input type="text" name="score" size="5">&l
9、t;label> 命中率:</label><input type="text" name="success" size="10"><label> 倒計時:</label><input type="text" name="remtime" size="5"></form><table><tr><td id="td0" onclick="hit
10、(0)"></td><td id="td1" onclick="hit"></td><td id="td2" onclick="hit(2)"></td><td id="td3" onclick="hit(3)"></td><td id="td4" onclick="hit(4)”></td></tr><t
11、r><td id="td5" onclick="hit(5)"></td><td id="td6" onclick="hit(6)"></td><td id="td7" onclick="hit(7)"></td><td id="td8" onclick="hit(8)"></td><td id="td9" o
12、nclick="hit(9)"></td></tr><tr><td id="td10" onclick="hit(10)"></td><td id="td11" onclick="hit(11)"></td><td id="td12" onclick="hit(12)"></td><td id="td13" oncli
13、ck="hit(13)"></td><td id="td14" onclick="hit(14)”></td></tr><tr><td id="td15" onclick="hit(15)"></td><td id="td16" onclick="hit(16)"></td><td id="td17" onclick="
14、;hit(17)"></td><td id="td18" onclick="hit(18)"></td><td id="td19" onclick="hit(19)"></td></tr><tr><td id="td20" onclick="hit(20)"></td><td id="td21" onclick="hi
15、t(21)"></td><td id="td22" onclick="hit(22)"></td><td id="td23" onclick="hit(23)"></td><td id="td24" onclick="hit(24)"></td></tr></table></div></body></html>這樣打地
16、鼠小游戲的結(jié)構(gòu)設(shè)計就完成了,可以保存后通過Firefox 瀏覽器查看當(dāng)前效果。5. 功能邏輯實現(xiàn)代碼配上詳細(xì)注解:var td =playing =score =beat =success =knock =countDown =interId =timeId =/ 游戲結(jié)束 timeStop();playing = clearMouse();new Array (), false , 0, 0,0,0,30, null , null ;/ 保存每個格子的地鼠/ 游戲是否開始/ 分?jǐn)?shù)/ 鼠標(biāo)點擊次數(shù)/ 命中率/ 鼠標(biāo)點中老鼠圖片次數(shù)/ 倒計時/ 指定 setInterval() 的變量/ 指定
17、setTimeout() 的變量function GameOver() false ;alert( " 游戲結(jié)束! n 你獲得的分?jǐn)?shù)為: " +score+ "n 命中率為: " +success);success =0;score =0;knock =0;beat =0;countdown =30;/ 顯示當(dāng)前倒計時所剩時間 function timeShow() document.form1.remtime.value = countDown;if (countDown =0)GameOver();return ; else countdown =
18、countdown-1;timeId = setTimeout("timeShow()" , 1000);/ 主動停止所有計時 function timeStop() clearInterval(interId);/clearInterval() 方法返回 setInterval() 方法的 idclearTimeout(timeId);/clearTime() 方法返回 setTimeout() 的 id/ 隨機循環(huán)顯示老鼠圖片 function show() if (playing)var current =Math.floor(Math.random()*25);/
19、這里的路徑也需要根據(jù)自己的實際文件路徑來修改document.getElementById("td" +current+ "" ).innerHTML = '<imgsrc="img/mouse.png">' ;/ 使用 setTimeout() 實現(xiàn) 3 秒后隱藏老鼠圖片setTimeout( "document.getElementById('td" +current+ "').innerHTML=''" 3000);/ 清除所有老
20、鼠圖片 function clearMouse() for ( var i= 0;i<= 24;i+)document.getElementById("td" +i+ "" ).innerHTML= "" ;/ 點擊事件函數(shù),判斷是否點中老鼠function hit(id) if (playing= false )alert( "請點擊開始游戲" );return ; elsebeat +=1;if ( document.getElementById("td" +id+ "&qu
21、ot; ).innerHTML!= "" )score +=1;knock +=1;success = knock/beat;document.form1.success.value = success;document.form1.score.value = score;document.getElementById("td" +id+ "" ).innerHTML= "" ;elsescore += -1;success = knock/beat;document.form1.success.value = success;document.form1.score.value = score;/ 游戲開始function GameStart()playing = true ;interId = setInterval("show()" , 1000);document.form1.score.value = score;document.form1.success.value = success;timeShow();
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年專業(yè)財務(wù)代理記賬合作協(xié)議
- 2025年區(qū)域快遞服務(wù)承包經(jīng)營合同范本
- 2025年臨時宿舍租賃協(xié)議書
- 2025年員工投資策劃入股合作協(xié)議書
- 2025年區(qū)域間互惠協(xié)議規(guī)范
- 2025年云計算服務(wù)購銷合同模板
- 2025年度股東墊付資金互助協(xié)議書模板
- 2025年信用協(xié)議示范文本索取
- 2025年個人經(jīng)營店鋪質(zhì)押貸款合同樣本
- 2025年企業(yè)人力資源專員聘用合同樣本
- 急救護理學(xué)第十章災(zāi)難救護講解
- 2025年常德職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測試近5年常考版參考題庫含答案解析
- Unit2 No rules no order Section A Grammar 英文版說課稿2024-2025學(xué)年人教版(2024)七年級英語下冊
- 行政單位會計核算職責(zé)(4篇)
- 2024年山東司法警官職業(yè)學(xué)院高職單招語文歷年參考題庫含答案解析
- 2024版消防設(shè)計質(zhì)量問題案例分析手冊建筑機電專業(yè)
- 《義務(wù)教育道德與法治課程標(biāo)準(zhǔn)》解讀
- 2024年臨滄永德縣人民法院聘用制書記員招聘考試真題
- 中醫(yī)院發(fā)展中醫(yī)重點專科、學(xué)科加強中醫(yī)藥人才培養(yǎng)的具體措施
- 2025年中國私域電商行業(yè)市場運行態(tài)勢、市場規(guī)模及發(fā)展趨勢研究報告
- 社區(qū)意識形態(tài)工作2025年度工作計劃
評論
0/150
提交評論