Cocos2d-x场景转换后局部变量值异常问题。

Cocos2d-x场景转换后局部变量值异常问题。,第1张

概述今天在按钮教程写一段程序后,发现在添加新场景前正常的局部变量,在添加了场景跳转后,变量的值工作不正常了。后来将他们转换为全局变量,正常工作了。 auto dot = DrawNode::create(); dot->setAnchorPoint(Vec2(1,1)); dot->setPosition(visibleSize/2); addChild(dot); s

今天在按钮教程写一段程序后,发现在添加新场景前正常的局部变量,在添加了场景跳转后,变量的值工作不正常了。后来将他们转换为全局变量,正常工作了。


auto dot = DrawNode::create();    dot->setAnchorPoint(Vec2(1,1));    dot->setposition(visibleSize/2);    addChild(dot);    schedule([dot,this](float f){        if(_blue>200)        {            temp = -1.0f;        }        if(_blue <= 1)        {            temp = 1.0f;        }        _blue+=temp;        dot->clear();        dot->drawDot(Vec2(0,0),_blue,color4F(1,1,1));    },0.1,"test");

这段中的temp和_blue原本是在init中的局部变量,在从场景A中跳转到本场景后,temp和_blue一直保持为1不变。后来调试发现,在进入加运算前_blue和temp的值是一个非常非常小的浮点数。此时我感觉到temp和_blue是不是被程序自身做了什么处理或者优化?而忽略掉了他们,改为在每次都重新去生成创建了。


后来按照这种思路 ,将他们放到成员变量中。


protected:    float _blue = 0.0f;    float temp = 1.0f;
然后将schedule([dot,&_blue,&temp 直接修改为 this。程序工作正常了。这个dot可以按照预想的效果表现了,temp与_blue不在被重新初始化。 总结

以上是内存溢出为你收集整理的Cocos2d-x场景转换后局部变量值异常问题。全部内容,希望文章能够帮你解决Cocos2d-x场景转换后局部变量值异常问题。所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1073622.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存