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

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


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, _blue, 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不在被重新初始化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值