
好了,代码给出来了,下面我来问问你:这些按钮控件会在什么时候创建呢?这个问题留给大家思考,下面,让我们继续讲数字选择面板的实现代码,draw()成员函数的代码如下:

首先绘制掩码层,然后按每行9个子控件依次排列子控件,接着依次绘制每一个子控件。我们看看子控件是如何排列整齐的,排列子控件的代码如下:

由于有子控件,在处理事件时要考虑到子控件应优先对事件进行处理,所以gxsUI.handle()成员函数的代码需要修改,修改后的代码如下:

在处理事件的时候需要判断当前控件是否有子控件,有的话让子控件优先响应事件。那个clear()成员函数是新增加的,代码如下:

这个函数主要判断控件状态是否变更完毕,如是的话将控件状态复位。接着引成员函数调用控件的回调函数并返回事件已处理标记true。最后就是数字选择面板子控件的回调函数中调用的FillNum()函数的代码了,这个函数的作用是将相应数字填入数字面板,目前是一个空函数,下次将介绍它的实现。

子控件的事件处理是整个游戏中的难点,很高兴你能坚持到这里,接下来的内容都比较简单了。最后,将今天的内容录了一个视频,文章未提到的地方可以参看视频。
H5数独游戏开发——游戏中的自定义复合控件
未完待续,敬请关注!后续更精彩,谢谢大家!