create_func与背景显示

用cocos2d-x3.3rc0的版本创建了一个工程,其中有一个helloworld的layer,我在helloworld的init()函数里边加了一个背景图片,又自己写了一个createScene()函数,返回一个scene指针,代码是这样的:

Scene* HelloWorld::createScene()
{
auto scene = Scene::create();
auto layer = HelloWorld::create();
scene->addChild(layer);
return scene;
}

bool HelloWorld::init()
{
if ( !Layer::init() )
{
return false;
}
cocos2d::Size visibleSize = cocos2d::Director::getInstance()->getVisibleSize();
auto backGround = cocos2d::Sprite::create(“background.png”);
backGround->setPosition(0.0, 0.0);
backGround->setAnchorPoint(cocos2d::Vec2(0., 0.));
this->addChild(backGround);
return true;
}
但是我把头文件里的CREATE_FUNC(HelloWorld); 注释掉后就不能显示出背景图片了,不知道怎么回事,麻烦大神求解,谢谢了

CREATE_FUNC注释掉你就不能使用create了,你cpp里面应该会报错的

可是没有报错哎,就是背景是黑色的

CREATE_FUNC宏用于创建一个静态方法返回自身的一个实例
你可以去看看这个的源代码

我知道了,这个是因为CREATE_FUNC就是一个宏定义:
#define CREATE_FUNC(TYPE)
static TYPE* create()
{
TYPE *pRet = new TYPE();
if (pRet && pRet->init())
{
pRet->autorelease();
return pRet;
}
else
{
delete pRet;
pRet = NULL;
return NULL;
}
}
我创建场景的时候不是用的helloworld::create()函数,所以那个init()一直就没有调用,场景也就是没有加载进去。
问题解决了,谢谢了

谢谢了就是您说的那个问题,init函数一直没有调用,所以背景都是默认的黑色