天天看点

cocos2d-x 模态对话框的实现

心情不好,恩,不扯淡了,直接讲。

==================================

在泰然看了一篇实现模态对话框的文章,写的还不错,然后在其基础上加了我简单加了一层灰色透明背景,这样子界面效果看起来会更友好一点,好吧,原谅我的无耻,原创转载什么的也不在意了,,今天感觉有点累,恩,主要是大神不能带我飞了,很是失落,好吧,不说废话了。

在游戏中,我们常常需要实现弹出一个模态对话框,比如说游戏暂停,退出提示对话框等

对话框特点如下:

1.可定制的,比如说背景图,标题,文本,按钮等,根据需要添加和设置

2.需要屏蔽对话框下层的触摸

3.为了友好的效果显示,把不可触摸的部分变为灰色

先来看一张效果图:

cocos2d-x 模态对话框的实现

为了完成这样一个效果,思路如下:

1.设计一个弹出对话框的类PopupLayer,继承于LayerColor,这样子我们就可以设置背景版透明,看起来好像把对话框下层的变灰暗了

2.添加触摸事件,屏蔽下层触摸,也就是在Layer中设置不向下传递

3.PopupLayer类 实现 可定制对话框标题,按钮,文本,背景图片等

4.按钮回调函数实现也比较简单,首先设置外部的回调对象和回调函数

然后在PopupLayer类中比如说我们添加一个菜单按钮

设置button回调函数,然后由这个回调函数去调用外部的button监听函数,然后关闭对话框

5.然后用法也比较简单,如果需要对话框内容显示中文,可以参考:这篇文章

外部回调函数实现,根据tag判断点了什么按钮

恩,思路大概这样子,完整的对话框类如下,亲们可以复制直接使用

cpp文件实现如下:

继续阅读