cocos2d-x中实现CCScrollView翻页操作-创新互联

游戏有许多翻页的操作,如查看背包物品,显示不同地图场景,今天就带大家实现一个简单的翻页操作(也是CCScrollView的用法):

公司主营业务:成都网站建设、成都网站设计、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联建站是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联建站推出德化免费做网站回馈大家。

(1)首先CCScrollView 在 Cocosd-x 的扩展库里面,要是使用的话,需要引入扩展包,然后添加命名空间

  #include "cocos-ext.h"

USING_NS_CC_EXT;//cocos2dx定义的宏

(2)class SelectScrollView : public cocos2d::CCLayer, public CCScrollViewDelegate{

  }

让该类继承CCSrollViewDelegate;

(3)然后实现CCScrollViewDelegate,这个其实是和UISCrollView和相似的。

必须实现的两个方法。

virtual void scrollViewDidScroll(CCScrollView* view);

   virtual void scrollViewDidZoom(CCScrollView* view);

(4)现在我们开始创建CCScrollView对象了。当然我们最好还是再创建一个Layer用来作为CCScrollView的Container。

CCLayer *layer = CCLayer::create();

CCScrollView _scrollView = CCScrollView::create();

for (int i=0; i<4; i++) {

char str[100] = {0};

sprintf(str, "UI_selectStage_%d-hd.png", i+1);

CCSprite *backgroundSprite = CCSprite::create(str);

      backgroundSprite -> setPosition(ccp(240+480*i, 160));

    }

    layer -> setAnchorPoint(CCPointZero);

    layer -> setPosition(CCPointZero);

_scrollView -> setAnchorPoint(CCPointZero);

_scrollView -> setPosition(CCPointZero);

_scrollView -> setViewSize(CCSizeMake(480, 320));

    layer -> setContentSize(CCSizeMake(480*4, 320));

_scrollView -> setContentSize(CCSizeMake(480*4, 320));

_scrollView -> setContainer(layer);

_scrollView -> setDirection(kCCScrollViewDirectionHorizontal);

_scrollView -> setDelegate(this);

this -> addChild(_scrollView);

this -> setTouchEnabled(true);

现在就可以实现基本的滑动操作了

(5)现在我们来实现翻页的功能

voidSelectScrollView::ccTouchesEnded(cocos2d::CCSet *pTouches, cocos2d::CCEvent *pEvent) {

   _scrollView -> unscheduleAllSelectors();

  int x = _scrollView -> getContentOffset().x;

  int offset = (int) x % 480;

  CCPoint adjustPos;

  if (offset < -240) {

    adjustPos = ccpSub(_scrollView -> getContentOffset(), ccp(480 + offset, 0));

  }else{

    adjustPos = ccpSub(_scrollView -> getContentOffset(), ccp(offset, 0));

  }

  _scrollView -> setContentOffset(adjustPos);

}

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


分享文章:cocos2d-x中实现CCScrollView翻页操作-创新互联
分享路径:http://myzitong.com/article/diipoh.html