上次给大家讲了如何绘制游戏主界面及数字面板,今天接着往下面讲,如何生成默认固定数字。游戏开始之前,我们要在数字面板上随机初始化一些数字并显示出来,我们来看看该如何实现。
首先看看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对象绘制所有固定的数字,在绘制之前先初始化固定数字的参数,然后再将它绘制出来。
最后将今天讲的内容录了视频,文章中没有讲到的地方大家可以看视频。
未完待续,敬请关注!后续更精彩,谢谢大家!