cocos2d-x CCAction scrollMap

来源:互联网 发布:阴茎毛囊炎 知乎 编辑:程序博客网 时间:2024/05/22 06:45


转载请注明出处!!


在网上查找了滚动地图的sample,很遗憾大家全是互相抄袭。今天本座用另一种方法实现共享给大家。此代码不能直接使用,有版权信息保护。


voidScrollLayer::initActionMoveBg()

{

    

    pos = ccp(0,1704);//根据图片大小计算

   sp1 = CCSprite::create("wwwxx.png");

  

    sp1->setPosition(ccp(0,1136/2));

    sp1->setTag(1);

    this->addChild(sp1,0);

    CCFiniteTimeAction *action = CCMoveTo::create(10.0f,ccp(0, -568));

 

   

   CCFiniteTimeAction *action2 =CCCallFuncND::create(this,callfuncND_selector(ScrollLayer::actionCallBack), NULL);

     repf = CCRepeatForever::create(CCSequence::create(action,action2,NULL));

    

    sp1->runAction(repf);

   CCDirector::sharedDirector()->setProjection(kCCDirectorProjection2D);

   sp1->getTexture()->setAliasTexParameters();

    sp2 = CCSprite::create("wwwxx.png");

   

   sp2->setPosition(pos);

    sp2->setTag(2);

    this->addChild(sp2,2);

   sp2->setVisible(true);

    CCFiniteTimeAction *action3 = CCMoveTo::create(10.0f,ccp(0, -568));

   CCFiniteTimeAction *action4 =CCCallFuncND::create(this,callfuncND_selector(ScrollLayer::actionCallBack),NULL);

   CCRepeatForever*repf3=CCRepeatForever::create(CCSequence::create(action3,action4,NULL));

    sp2->runAction(repf3);

    sp2->getTexture()->setAliasTexParameters();

        

  

    

}



voidScrollLayer::actionCallBack(CCNode* node,int *i)

{

   

    CCFiniteTimeAction *action3 = CCMoveTo::create(10.0f,ccp(0, -568));

    

   CCFiniteTimeAction *action4 =CCCallFuncND::create(this,callfuncND_selector(ScrollLayer::actionCallBack),NULL);

   CCRepeatForever*repf3=CCRepeatForever::create(CCSequence::create(action3,action4,NULL));

    switch (node->getTag()) {

        case 1:

     sp1->stopAllActions();

             sp1->setPosition(pos);

             sp1->runAction(repf3);

            break;

        case 2:

    sp2->stopAllActions();

            sp2->setPosition(pos);

            sp2->runAction(repf3);

           break;

           

        default:

            break;

    }

    

    

    

}