有关一个cocos2d-x 的菜鸟问题 界面切换后没显示我init中显示的图片
具体代码如下:void HelloWorld::menuCloseCallback(CCObject* pSender)
{
// "close" menu item clicked
//CCDirector::sharedDirector()->end();
CCScene *newscreen = NewGameStart::scene();
CCDirector::sharedDirector()->replaceScene(newscreen);
}
.cpp文件:
#include "GameScreen.h"
bool NewGameStart::init()
{
bool ret=false;
int temp = 1;
CCSprite *player = CCSprite::spriteWithFile("start.png",
CCRectMake(0, 0, 27, 40) );
player->setPosition(ccp(100,100));
this->addChild(player);
return ret;
}
cocos2d::CCScene* NewGameStart::scene()
{
CCScene * scene = NULL;
do
{
scene = CCScene::create();
CC_BREAK_IF(! scene);
NewGameStart* my = NULL;
my = NewGameStart::create();
CC_BREAK_IF(! my);
scene->addChild(my);
} while (0);
// return the scene
return scene;
}
void NewGameStart::ToExit( CCObject* pSender )
{
CCDirector::sharedDirector()->end();
}
.h文件:
#include "cocos2d.h"
using namespace cocos2d;
class NewGameStart : public cocos2d ::CCLayer
{
public:
bool init();
static cocos2d::CCScene* scene();
void ToExit(CCObject* pSender);
CREATE_FUNC(NewGameStart);
};
--------------------------------------------
刚刚调试了下 cocos2d::CCScene* NewGameStart::scene() 中
NewGameStart* my = NULL;
my = NewGameStart::create();
create后my为null
具体求大神们指点 --------------------编程问答-------------------- 你的init()方法写错了。
bool ret=false;
int temp = 1;
CCSprite *player = CCSprite::spriteWithFile("start.png",
CCRectMake(0, 0, 27, 40) );
player->setPosition(ccp(100,100));
this->addChild(player);
return ret;
你直接return false;了
应该这样写
bool ret=false;
bool bRet = false;
do
{
CC_BREAK_IF(! CCLayer::init());
int temp = 1;
CCSprite *player = CCSprite::spriteWithFile("start.png",
CCRectMake(0, 0, 27, 40) );
player->setPosition(ccp(100,100));
this->addChild(player);
ret = true;
} while (0);
return ret;
补充:移动开发 , 移动开发其他问题