gpt4 book ai didi

c++ - cocos2d-x 中变量的一次初始化

转载 作者:行者123 更新时间:2023-12-03 12:51:06 25 4
gpt4 key购买 nike

我正在 cocos2d-x (iOS) 中开发一款游戏。在那里我创建了几个场景并在这些场景之间进行了过渡。在每次转换期间,每个场景(层)的 init() 都会被调用(并且每次在 init() 之前都会调用构造函数)。我的问题是,即使每次调用 init() ,如何才能在这个 init() 或构造函数中对变量进行一次初始化?或者有任何其他替代解决方案吗?

  CCUserDefault::sharedUserDefault()->setBoolForKey("firstTimeInit", false);

bool firstTimeInit = CCUserDefault::sharedUserDefault()->getBoolForKey("firstTimeInit");

if (!firstTimeInit)
{

for(int i = 0; i < 10; i++)
{
char szName[22] = {0};
sprintf(szName, "Rank%i", i);

CCUserDefault::sharedUserDefault()->setIntegerForKey(szName,0);
CCUserDefault::sharedUserDefault()->flush();

int score = CCUserDefault::sharedUserDefault()->getIntegerForKey(szName);
vScore.push_back(score);
}
CCUserDefault::sharedUserDefault()->setBoolForKey("firstTimeInit",true); }

我在 init() 方法中编写了这段代码..并且我想要我设置为 false 的firstTimeInit,仅初始化一次。

编辑#####

在 cocos2d-x 中,每次转换都会调用 init() 方法,这就是每次初始化发生的原因。另外,即使在我退出游戏并重新运行之后,我也希望进行一次初始化。我尝试使用 CCUserDefault 的 setBoolForKey() 但没有成功,因为它也在 init() 中。

最佳答案

这将完成您的任务

bool val = cocos2d::CCUserDefault::sharedUserDefault()->getBoolForKey("initialized");

if (val != true){
cocos2d::CCUserDefault::sharedUserDefault()->setBoolForKey("initialized", true);
cocos2d::CCLog(" initializing value ");
}

关于c++ - cocos2d-x 中变量的一次初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20066087/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com