2017-05-20 61 views
0

我遇到了cocos2dx中的字符串问题& C++。我想将可变背景传递给Sprite::create(background)但是,我得到一个错误。如果它是在Java中,下面的代码将工作,但由于我不习惯C++,它可能会有所不同。另外,如果它是一个int我怎么会通过它?我将如何解决这个问题?一些提示或样品将会很棒!我很乐意听取您的意见!无法将字符串变量传递给cocos2dx中的Sprite

void GameLayer::initBackground() 
{ 
    UserDefault *_userDef = UserDefault::getInstance(); 
    //int型 
    auto _int =_userDef->getIntegerForKey("back"); 
    auto string background = "Background1.png"; 
    if (_int == 0) { 
     background = "Background2.png"; 
    } 
    auto bgForCharacter = Sprite::create(background); 
    bgForCharacter->setAnchorPoint(Point(0, 1)); 
    bgForCharacter->setPosition(Point(0, WINSIZE.height)); 
    addChild(bgForCharacter, ZOrder::BgForCharacter); 

    auto bgForPuzzle = Sprite::create("Background2.png"); 
    bgForPuzzle->setAnchorPoint(Point::ZERO); 
    bgForPuzzle->setPosition(Point::ZERO); 
    addChild(bgForPuzzle, ZOrder::BgForPuzzle); 
} 

回答

2
auto userDefault=UserDefault::getInstance(); 

int value=userDefault->getIntegerForKey("back"); //find value for back if exist then it return that value else return 0 

auto sprite = Sprite::create(value==0?"Background2.png":"Background1.png"); 
sprite->setPosition(100, 100); 
this->addChild(sprite, 0); 

当你想改变你的背景只是把任何价值,而不是0

UserDefault::getInstance()->setIntegerForKey("back", 1); 
相关问题