C/C++ Cocos2dx 对象在调用调度后返回空值
C/C++ Cocos2dx Object return null after calling schedule
我是Cocos开发的新手现在,我在呼叫时间表时遇到问题我有 2 个场景(场景 1 和场景 2)和对象 1。场景 1 是主的,有一个菜单可以更改为场景 2。在 createScenes2() 函数中,我修改了 Object1 的值,如下所示
Chap5.h
Scene *scene1,*scene2;
int ount;
第5章.cpp
scene1 = Scene::create();
scene1->retain();
scene2 = createScene2();
scene2->retain();
auto nodeItems = Node::create();
nodeItems->setName("nodeItems");
auto menuNode = Node::create();
menuNode->setName("menuNode");
int index = 2;
auto thisSceneLabel = Label::createWithTTF("This Is A Scene 1",
"Marker Felt.ttf", 64);
auto menuItem1 = MenuItemFont::create("Make A New Scene");
menuItem1->setFontNameObj("Marker Felt.ttf");
menuItem1->setFontSizeObj(64); menuItem1->setName("menuItem1");
menuItem1->setCallback([&](cocos2d::Ref *sender) {
Director::getInstance()->replaceScene(scene2);
});
auto menu = Menu::create(menuItem1, NULL);
menu->setName("menu");
menuNode->addChild(menu, 1);
menu->setPosition(Vec2::ZERO);
scene1->addChild(menuNode, 2);
scene1->setTag(1);
this->addChild(scene1);
return true;
在创建场景2()中,我修改了计数值
Scene* Chap5::createScene2() {
count=999999;
scene2->schedule(schedule_selector(Chap5::updateCount), 0.5); // call schedule to updates
}但在方法更新中,计数未更新
void Chap5::initSprite(float dt) {
CCLOG("count = %d", count);}
我的问题是计数在事务到 Scenes2 和调用计划方法后没有获得值Anyboby可以让我知道为什么非常感谢您的帮助
您可能获得空返回值的原因是,在 createScene2 中,变量 scene2 未实例化,并且您的方法未返回 Scene* 作为返回类型:
Scene* Chap5::createScene2()
{
count=999999;
scene2->schedule(schedule_selector(Chap5::updateCount), 0.5); // call schedule to updates
}
您可能想要执行的操作应如下所示:
Scene* Chap5::createScene2()
{
Scene* scene2 = Scene::create ();
count=999999;
scene2->schedule(schedule_selector(Chap5::updateCount), 0.5); // call schedule to updates
return scene2;
}
我建议将每个场景保存在自己的 .h 和 .cpp 文件中,以便于阅读并遵循常见约定
作为初学者学习的一个好方法是以下示例:https://m.youtube.com/playlist?list=PLRtjMdoYXLf4od_bOKN3WjAPr7snPXzoe
相关文章:
- 来自 std::list 的迭代器 .end() 按预期返回"0xcdcdcdcdcdcdcdcd"但 .begin()
- 什么时候在C++中返回常量引用是个好主意
- 你能重载对象变量名本身返回的内容吗
- 为什么 Serial.println(<char[]>);返回随机字符?
- C++映射:具有自定义类的运算符[]不起作用(总是返回0)
- 如何获取std::result_of函数的返回类型
- QueryWorkingSet总是返回false
- (C++)分析树以计算返回错误值的简单算术表达式
- 访问者访问变体并返回不同类型时出错
- 如何在c++中实现处理器调度模拟器
- 如何返回一个类的两个对象相加的结果
- OpenInventor从9.8升级到10.4.2后,GLSL纹理返回零
- lower_bound()返回最后一个元素
- "throw expression code" 1e7 >返回 d 是什么?投掷标准::overflow_error( "too big" ) : d;意味 着?
- 奇怪的(对我来说)返回声明 - 在谷歌上找不到任何关于它的信息
- 如何使用从处理程序调度的最终回调将响应异步返回给调用方on_read?
- 是否可以使用标记调度来确定返回类型
- C/C++ Cocos2dx 对象在调用调度后返回空值
- 尾随返回类型和标记调度
- 调度重生在碰撞检测中返回错误