1. 程式人生 > >cocos2d-x 無限地圖滾動

cocos2d-x 無限地圖滾動

地圖的滾動原理很簡單,就是持續設定地圖的位置即可。具體實現用schedule()函式。 [cpp]  pMap = CCSprite::create("MapHenn.png");   pMap->setPosition(ccp(mSize.width/2, mSize.height/2));   this->addChild(pMap, 0);   schedule(schedule_selector( SpriteScene::updateMap),0.1f);   schedule()函式的作用就是根據指定時間,持續呼叫一個函式。 然後再updateMap()中更新地圖的位置。 [cpp]   void  SpriteScene::updateMap(float dt)   {       pMap->setPositionX(pMap->getPositionX()-5);   }   Ctrl + F5,就可以看到地圖持續向左邊滾動了, 還有個問題就是滾動到地圖最右邊,就會沒有背景,在updateMap()中加個限制就好。 [cpp]  void  SpriteScene::updateMap(float dt)   {       pMap->setPositionX(pMap->getPositionX()-5);       //如果地圖滾動到最右邊,讓其恢復初始位置       if(pMap->getPositionX() < -pMap->getContentSize().width/2+mSize.width)       {           pMap->setPosition(ccp(mSize.width/2, mSize.height/2));       }   }   這裡只寫了地圖向左滾動,向右滾動同理。 如果在場景中在加一個動態的角色,然後滾動地圖,就會造成人物行走的效果,2D鎖視角的遊戲就是這個原理。 效果圖: