Cocos2dx 小技巧(四)delegate委托

本文以寓言故事的形式介绍了Cocos2dx中如何使用委托(delegate)机制,通过创建StatusDelegate基类,及其子类StatusLayer和GameLayer的互动,阐述了委托在游戏开发中的应用。故事中,GameLayer为了获取如同StatusDelegate般的读心术,即理解其他层的状态,必须遵循特定的规则,这与委托的工作原理相呼应。
摘要由CSDN通过智能技术生成
有些技巧你不知道不要紧,但知道后会很牛逼。
-------------------
假如我们游戏场景中有两个层,一个是游戏层,一个是状态层。游戏层就是控制游戏中角色的移动(为了简便说明,我自动忽视了控制层),状态曾就是当提示游戏状态,当游戏开始时显示“game start”几个字,当游戏结束时显示“game over”。那么,该怎么实现游戏层与状态层间的通信呢?
有的人马上说:用单例啊,在状态层写一个单例,这样游戏层随时都可以调用。没错,单例确实可以解决层之间的通信,但我在第二篇里也有说过, 单例这东西能不用就不用,太浪费空间。

下面介绍另一种方法: delegate(委托)

首先我建立一个委托的基类

class MyDelegate
{
public:
		virtual void onGameStart(void) = 0;//创建游戏开始的虚函数
		virtual void onGameEnd(void) = 0;//创建游戏结束时的虚函数
};
下面创建一个GameLayer(游戏层)


                
  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值