上次給大家講了如何繪制遊戲主界面及數字面闆,今天接着往下面講,如何生成默認固定數字。遊戲開始之前,我們要在數字面闆上随機初始化一些數字并顯示出來,我們來看看該如何實現。
首先看看html頁面代碼
runGame()函數增加了一行代碼g_oGameObj.initGame();此函數負責調用生成随機數字的函數,我們接着看它的代碼
g_oGameData.genereateFixed()函數是在固定位置生成随機數的函數,它的代碼如下:
首先将保存數字的aFixed數組初始化,接下來逐行逐列生成随機數字,并驗證每一行、每一列、每3×3方塊内是否有重複數字,最後在每一行内随機删除2至5個數字。
我們再看看g_oGameObj.drawScene()函數的代碼
加了一個g_oSpriteManage.draw()函數,在這個數獨遊戲中,将使用了圖片且不需要與用戶交互的繪制操作封裝到一個叫gxsSpriteManage的類,下面讓我們來瞧瞧它的代碼
此類的init成員函數很簡單,對初始化參數數組中的每一個gxsSprite對象依次執行init()函數并将它們添加到aSprites數組中。g_aSpritePara對象定義如下:
是一個gxsSprite類的對象數組,目前隻有一個數組成員,即代表固定數字的g_oFixNum對象(繼承gxsSprite類)。我們先看看gxsSprite類定義及成員函數
注意那個initParameter()函數,根據執行時綁定對象的不同調用不同子對象的initParameter()函數。最後看看gxsFixNumSprite類(繼承自gxsSprite)的代碼
最後看看initParameter()函數和draw()函數代碼
draw()函數中我打了個懶主意,用一個g_oFixNum對象繪制所有固定的數字,在繪制之前先初始化固定數字的參數,然後再将它繪制出來。
最後将今天講的内容錄了視頻,文章中沒有講到的地方大家可以看視頻。
數獨遊戲開發——生成随機固定數字
未完待續,敬請關注!後續更精彩,謝謝大家!
,