今天给大家介绍一下如何在游戏中实现对话框,我们先来看一下游戏中对话框的效果,运行结果如下:
对话框自带一个蓝色的掩码层,掩码层上面显示对话框,点击“确定”按钮将关闭对话框。我们将在游戏主面板中添加一个“显示游戏规则”按钮,用户点击此按钮后将显示“游戏规则”对话框。首先,我们需要对游戏主面板的代码进行修改,因为它新增了一个子控件——显示游戏规则按钮;接下来,还需要修改UI类的事件处理代码,父控件需要处理事件时,在子控件未能处理事件时不返回false(返回false将让下一控件处理事件),而是让子控件的父控件处理事件。我们先给游戏主面板添加一个表示父控件是否需要处理事件的变量bSelfHandle,如下图所示:
接着看UI类的事件处理函数handle()代码,修改的地方如下:
如果子控件未能处理事件,且父控件需要处理事件,则让主控件处理事件(此处直接调用事件清理函数clear()),接下来我们看看对话框类gxsDialog的实现代码