无限上下滚动.好多疑问哦


Size visibleSize = Director::sharedDirector()->getVisibleSize();
    Point origin = Director::sharedDirector()->getVisibleOrigin();

    Sprite* temMap1 = (Sprite*)this->getChildByTag(MAP_1_Tag);
    Sprite* temMap2 = (Sprite*)this->getChildByTag(MAP_2_Tag);

    temMap1->setPositionY(temMap1->getPositionY() - 1);
    temMap2->setPositionY(temMap2->getPositionY() - 1);

    if (temMap1->getPositionY() + temMap1->getContentSize().height / 2 <= origin.y)
    {
        float offset = temMap1->getPositionY() + temMap1->getContentSize().height / 2 - origin.y;
        temMap1->setPosition(ccp(temMap1->getContentSize().height / 2 + origin.y + visibleSize.height + offset, visibleSize.width / 2 + origin.x));
    }

    if (temMap2->getPositionY() + temMap2->getContentSize().height / 2 <= origin.y)
    {
        float offset = temMap2->getPositionY() + temMap2->getContentSize().height / 2 - origin.y;
        temMap2->setPosition(ccp(temMap2->getContentSize().height / 2 + origin.y + visibleSize.height + offset, visibleSize.width / 2 + origin.x));
    }

首先,origin的y 是无值的.不知道为什么.如果是无值的话.第一个if判断就没法跟下去了.错误在那?

if里面的语句 很反锁啊,直接temMap1 ->setPosition(vec2(tempMap1->getpositionX(),visibleSize.Height + tempMap1.getContenSize().height/2)); 就好了 , 地图1 2 最好设为成员变量,不然每次调用滚动的时候都要创建临时变量