我有自己的ClientGame
类,我想添加这个类的对象,cocos2d-x中的所有Scenes
都可以访问它。我尝试了以下方法,但它们不起作用。
1)我创建了一个包含我的类对象的BaseScene
类,并继承了cocos2d :: Layer。然后,每个场景都继承此BaseScene
。它会编译,但窗口屏幕会立即显示并立即关闭。
2)我试图在同一时间继承cocos2d::Layer
和BaseScene
。
它编译,但它产生与上面相同的结果。
创建一个可供所有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);
};