天天看點

觀察者模式——CCNotificationCenter

觀察者模式——CCNotificationCenter
觀察者模式——CCNotificationCenter

HelloWorldScene.h:

觀察者模式——CCNotificationCenter

我們新增了兩個函數,一個用于接收消息的回調函數,一個用于釋出消息,當

然,通常消息的訂閱者和消息的釋出者不會是同一對象,這裡隻是為了簡單才放

到一起。

HelloWorldScene.cpp(部分修改代碼):

觀察者模式——CCNotificationCenter
觀察者模式——CCNotificationCenter

在init函數裡,訂閱了一個名為“test”的消息,并且建立了一個菜單,用于釋出消息,現在用調試模式運作項目,效果如圖:

觀察者模式——CCNotificationCenter

單擊菜單,我們将看到以下日志輸出:

觀察者模式——CCNotificationCenter

在這個例子中,使用消息訂閱有點多餘

但是,消息訂閱不僅僅能用于同一個CCLayer下的對象,它最強大的功能在于可以跨越不同的CCLayer進行消息訂閱和釋出。

接下來,我們看下兩個CCLayer之間如何進行消息訂閱和釋出。

建立一個新的類,命名為OtherLayer,代碼如下:

OtherLayer.h

觀察者模式——CCNotificationCenter

OtherLayer.cpp:

觀察者模式——CCNotificationCenter

修改HelloWorldScene.cpp:

觀察者模式——CCNotificationCenter

現在調試模式運作項目,點選菜單之後,在日志中顯示:

觀察者模式——CCNotificationCenter

繼續閱讀