cocos2d-x 中所有场景均可访问的对象

An object which is accessible by all Scenes in cocos2d-x

我有自己的 ClientGame class,我想添加这个 class 的对象,[=33= 中的所有 Scenes 都可以访问它].我尝试了以下方法,但它们不起作用。

1) 我创建了一个 BaseScene class,其中包含我的 class 对象并继承了 cocos2d::Layer。然后,每个场景都继承这个BaseScene。它可以编译,但是 window 屏幕只是出现并立即关闭。

2) 我试图同时继承cocos2d::LayerBaseScene。 它编译,但产生与上面相同的结果。

创建所有人都可以访问的对象的最佳方法是什么 Scenes? 这是我的代码。

BaseScene.h

#include "cocos2d.h"
#include "ClientGame.h"


class BaseScene
{
public:

private: 
  ClientGame mClientGame;

};

ClientGame.h

class ClientGame
{
public:
    ClientGame(void);
    ~ClientGame(void);    
    ClientNetwork* network; 
    void sendActionPackets(int action);
    void sendLineDestroyed();
    char network_data[MAX_PACKET_SIZE];
    void update();
    void clientLoop();

};

IntroScene.h

#include "cocos2d.h"
#include "BaseScene.h"


class IntroScene : public cocos2d::Layer, public BaseScene
{
public:
    // there's no 'id' in cpp, so we recommend returning the class instance pointer
    static cocos2d::Scene* createScene();

    // Here's a difference. Method 'init' in cocos2d-x returns bool, instead of returning 'id' in cocos2d-iphone
    virtual bool init();

    // a selector callback
    void menuCloseCallback(cocos2d::Ref* pSender);

    // implement the "static create()" method manually
    CREATE_FUNC(IntroScene);

    cocos2d::Sprite* pTetrisLogo;
    cocos2d::Sprite* pCloseNormal;

    void SinglePlay(Ref* pSender);
    void MultiPlay(Ref* pSender);
    void Exit(Ref* pSender);

//  void ImageButton(Ref* pSender);

};

因为我还没有足够的声誉来发表评论,所以在这里发帖。

您希望它被继承有什么具体原因吗?如果您的代码中所有 类 的对象都需要访问它,您不能只将它设为 Singleton 吗?