当前位置:编程学习 > wap >>

有关一个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;

补充:移动开发 ,  移动开发其他问题
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,