天天看點

cocos2d-x 模态對話框的實作

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

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

在泰然看了一篇實作模态對話框的文章,寫的還不錯,然後在其基礎上加了我簡單加了一層灰色透明背景,這樣子界面效果看起來會更友好一點,好吧,原諒我的無恥,原創轉載什麼的也不在意了,,今天感覺有點累,恩,主要是大神不能帶我飛了,很是失落,好吧,不說廢話了。

在遊戲中,我們常常需要實作彈出一個模态對話框,比如說遊戲暫停,退出提示對話框等

對話框特點如下:

1.可定制的,比如說背景圖,标題,文本,按鈕等,根據需要添加和設定

2.需要屏蔽對話框下層的觸摸

3.為了友好的效果顯示,把不可觸摸的部分變為灰色

先來看一張效果圖:

cocos2d-x 模态對話框的實作

為了完成這樣一個效果,思路如下:

1.設計一個彈出對話框的類PopupLayer,繼承于LayerColor,這樣子我們就可以設定背景版透明,看起來好像把對話框下層的變灰暗了

2.添加觸摸事件,屏蔽下層觸摸,也就是在Layer中設定不向下傳遞

3.PopupLayer類 實作 可定制對話框标題,按鈕,文本,背景圖檔等

4.按鈕回調函數實作也比較簡單,首先設定外部的回調對象和回調函數

然後在PopupLayer類中比如說我們添加一個菜單按鈕

設定button回調函數,然後由這個回調函數去調用外部的button監聽函數,然後關閉對話框

5.然後用法也比較簡單,如果需要對話框内容顯示中文,可以參考:這篇文章

外部回調函數實作,根據tag判斷點了什麼按鈕

恩,思路大概這樣子,完整的對話框類如下,親們可以複制直接使用

cpp檔案實作如下:

繼續閱讀