以Flappy Bird中的滚动地面为例:
设置两张一样的图片,进行来回的替换
this->landSpite1 = Sprite::createWithSpriteFrame(AtlasLoader::getInstance()->getSpriteFrameByName("land"));
this->landSpite1->setAnchorPoint(Point::ZERO);
this->landSpite1->setPosition(Point::ZERO);
this->addChild(landSpite1,30);
this->landSpite2 = Sprite::createWithSpriteFrame(AtlasLoader::getInstance()->getSpriteFrameByName("land"))
;
this->landSpite2->setAnchorPoint(Point::ZERO);
this->landSpite2->setPosition(Point(this->landSpite1->getContentSize().width-2,0));
this->addChild(landSpite2,30);
//scroll Land
shiftLand = schedule_selector(GameLayer::scrollLand);
this->schedule(shiftLand, 0.01f);
this->scheduleUpdate();
回调事件:void GameLayer::scrollLand(float dt){
this->landSpite1->setPositionX(this->landSpite1->getPositionX() - 2.0f);
this->landSpite2->setPositionX(this->landSpite1->getPositionX() + this->landSpite1->getContentSize().width - 2.0f);
if(this->landSpite2->getPositionX() == 0) {
this->landSpite1->setPositionX(0);
}
}