激情六月丁香婷婷|亚洲色图AV二区|丝袜AV日韩AV|久草视频在线分类|伊人九九精品视频|国产精品一级电影|久草视频在线99|在线看的av网址|伊人99精品无码|午夜无码视频在线

高校合作1:010-59833514 ?咨詢電話:400-810-1418 服務(wù)與監(jiān)督電話:400-810-1418轉(zhuǎn)接2

h5 小游戲開(kāi)發(fā)(H5數(shù)獨(dú)游戲開(kāi)發(fā))

發(fā)布時(shí)間:2023-11-27 13:17:21 瀏覽量:112次

?H5數(shù)獨(dú)游戲開(kāi)發(fā)

h5 小游戲開(kāi)發(fā)(H5數(shù)獨(dú)游戲開(kāi)發(fā))

  如何判斷游戲是否通關(guān)?通關(guān)后如何重新開(kāi)始游戲,讓用戶重玩?今天給大家詳細(xì)介紹如何實(shí)現(xiàn)以上功能。先看一下數(shù)獨(dú)游戲通關(guān)后的提示界面,截圖如下:

  首先,我們需要判斷游戲是否通關(guān),那么如何判斷呢?有兩個(gè)條件:1、數(shù)字面板已經(jīng)全部填滿;2、沒(méi)有顯示數(shù)字重復(fù)預(yù)警。游戲通關(guān)的流程如下:用戶填入數(shù)字后,判斷是否通關(guān),如通關(guān),則將計(jì)時(shí)暫停并將游戲狀態(tài)改為5(表示通關(guān)),繪制場(chǎng)景函數(shù)將顯示游戲通關(guān)及重玩提示對(duì)話框,用戶點(diǎn)“重玩”按鈕后游戲重新初始化。下面先看看通關(guān)判斷函數(shù)的代碼:

  用戶填入數(shù)字后,判斷是否通關(guān),如通關(guān)則更改游戲狀態(tài)值為5。接下來(lái)看看judgeWin()函數(shù)的代碼

  judgeWin()函數(shù)判斷是否通關(guān),首先判斷是否產(chǎn)生數(shù)字重復(fù)預(yù)警,接著判斷數(shù)字面板是否全部填滿,如沒(méi)有預(yù)警且數(shù)字已填滿則通關(guān),否則未通關(guān)。resetGame()函數(shù)負(fù)責(zé)重新初始化數(shù)字面板中的固定數(shù)字,并重新計(jì)時(shí)。由于使用了新的游戲狀態(tài)值5,所以繪制游戲場(chǎng)景的函數(shù)代碼需要修改,修改后的代碼如下:

  增加了游戲狀態(tài)值為5時(shí)的處理代碼,即顯示游戲通關(guān)提示及重玩對(duì)話框。前面說(shuō)過(guò),游戲通關(guān)時(shí)會(huì)暫停計(jì)時(shí),那么此功能是如何實(shí)現(xiàn)的呢?很簡(jiǎn)單,我們?cè)谟?jì)時(shí)函數(shù)中添加判斷是否通關(guān)的代碼,如通關(guān)則不計(jì)時(shí)。沒(méi)聽(tīng)明白?沒(méi)關(guān)系,看代碼:

  在計(jì)時(shí)前,先判斷游戲是否通關(guān)了,如已通關(guān)則返回,不計(jì)時(shí);否則,以秒為單位計(jì)時(shí)(調(diào)用timeElapse()時(shí)傳入的n值為1000,表示1000毫秒)。最后,說(shuō)一說(shuō)游戲通關(guān)及重玩提示對(duì)話框如何實(shí)現(xiàn)的,其實(shí)此對(duì)話框重用了上節(jié)課gxsDialog類的代碼,只不過(guò)使用了不同的資源圖片,首先就是游戲通關(guān)及重玩對(duì)話框的圖片(需要修改資源類的待加載資源名稱數(shù)組),代碼如下:

  "pass.png"是通關(guān)及重玩對(duì)話框圖片,"replay.png"是正常狀態(tài)的重玩按鈕圖片,"replayd.png"是按下?tīng)顟B(tài)的重玩按鈕圖片。接著是通關(guān)及重玩對(duì)話框、重玩按鈕的初始化代碼:

var g_oReplay=new gxsButtonUI("replay");//重玩按鈕

var g_oWinDialog=new gxsDialog("pass");//游戲通關(guān)及重玩對(duì)話框

  最后,如何實(shí)現(xiàn)游戲重新初始化數(shù)據(jù)及重玩的功能呢?我們可以在重玩按鈕的事件響應(yīng)回調(diào)函數(shù)中進(jìn)行處理,這里我把此功能放在它的父類對(duì)話框中實(shí)現(xiàn)。為了能讓按鈕類調(diào)用對(duì)話框類的回調(diào)函數(shù),給按鈕類添加一個(gè)指向父類的成員變量pParent,代碼如下:

  再給對(duì)話框類定義一個(gè)調(diào)用回調(diào)函數(shù)的函數(shù),代碼如下:

  正如你所見(jiàn),我把回調(diào)函數(shù)放在控件初始化參數(shù)數(shù)組中,這樣callFCB()與gxsDialog類實(shí)際綁定的對(duì)象無(wú)關(guān)?,F(xiàn)在,還有一個(gè)問(wèn)題,如何將gxsDialog類對(duì)象綁定給gxsButtonUI類?即在什么地方將gxsDialog類對(duì)象賦給gxsButtonUI類的pParent成員變量?看代碼:

  在對(duì)話框的draw()函數(shù)中將gxsDialog對(duì)象實(shí)例賦給它的ButtonUI類子控件的pParent成員變量,這樣就可以在按鈕控件的事件回調(diào)函數(shù)中通過(guò)pParent調(diào)用對(duì)話框類的事件回調(diào)函數(shù)。最后,讓我們看一看游戲通關(guān)及重玩對(duì)話框、重玩按鈕的參數(shù)初始化代碼:

  關(guān)鍵是g_oReplay.pParent.callFCB();這一行代碼,它表示調(diào)用重玩按鈕的父對(duì)話框(游戲通關(guān)及重玩對(duì)話框)的事件回調(diào)函數(shù),下面,看看游戲通關(guān)及重玩對(duì)話框的初始化參數(shù),代碼如下:

  最關(guān)鍵的就是g_oGameData.resetGame()這條語(yǔ)句,其作用前面已經(jīng)說(shuō)了,重新初始化游戲,讓用戶重新玩。child:[15]表示子控件為“控件初始化數(shù)組中索引為15的控件”——即“重玩”按鈕。最后,將今天的內(nèi)容錄了一個(gè)視頻,文章未提到的地方可以參看視頻。

h5 小游戲開(kāi)發(fā)(H5數(shù)獨(dú)游戲開(kāi)發(fā))

H5數(shù)獨(dú)游戲開(kāi)發(fā)——游戲通關(guān)及重玩

  未完待續(xù),敬請(qǐng)關(guān)注!后續(xù)更精彩,謝謝大家!

h5 小游戲開(kāi)發(fā)(H5數(shù)獨(dú)游戲開(kāi)發(fā))

熱門課程推薦

熱門資訊

請(qǐng)綁定手機(jī)號(hào)

x

同學(xué)您好!

您已成功報(bào)名0元試學(xué)活動(dòng),老師會(huì)在第一時(shí)間與您取得聯(lián)系,請(qǐng)保持電話暢通!
確定