有些技巧你不知道不要紧,但知道后会很牛逼。
-------------------
假如我们游戏场景中有两个层,一个是游戏层,一个是状态层。游戏层就是控制游戏中角色的移动(为了简便说明,我自动忽视了控制层),状态曾就是当提示游戏状态,当游戏开始时显示“game start”几个字,当游戏结束时显示“game over”。那么,该怎么实现游戏层与状态层间的通信呢?
有的人马上说:用单例啊,在状态层写一个单例,这样游戏层随时都可以调用。没错,单例确实可以解决层之间的通信,但我在第二篇里也有说过, 单例这东西能不用就不用,太浪费空间。
下面介绍另一种方法: delegate(委托)
-------------------
假如我们游戏场景中有两个层,一个是游戏层,一个是状态层。游戏层就是控制游戏中角色的移动(为了简便说明,我自动忽视了控制层),状态曾就是当提示游戏状态,当游戏开始时显示“game start”几个字,当游戏结束时显示“game over”。那么,该怎么实现游戏层与状态层间的通信呢?
有的人马上说:用单例啊,在状态层写一个单例,这样游戏层随时都可以调用。没错,单例确实可以解决层之间的通信,但我在第二篇里也有说过, 单例这东西能不用就不用,太浪费空间。
下面介绍另一种方法: delegate(委托)
首先我建立一个委托的基类
class MyDelegate
{
public:
virtual void onGameStart(void) = 0;//创建游戏开始的虚函数
virtual void onGameEnd(void) = 0;//创建游戏结束时的虚函数
};
下面创建一个GameLayer(游戏层)