Cocos2d-x 2.0.1里面 集成了一些以前需要自己添加的控件,极大的方便作为开发者的我们。
今天给大家带来一个用CCScrollView 实现的帮主页面。
最终结果是这样的:
首先CCScrollView 在 Cocosd-x 的扩展库里面,要是使用的话,需要添加命名空间
using namespace cocos2d::extension;
或者是用cocos2d-x 已经定义的宏
USING_NS_CC_EXT;
然后如果我们要是用 ScrollView的话,需要实现它的Delegate,这个的话,如果是做过IOS开发的同学应该很容易理解,就像UIScrollView。
class HelpScene : public cocos2d::CCLayer ,public CCScrollViewDelegate { public: void scrollViewDidScroll(CCScrollView* view); void scrollViewDidZoom(CCScrollView* view); public: ///其他方法: }
添加一个CCScrollView,可以通过统一的create函数实现,
// CCScrollView scrollView = CCScrollView::create(); //创建一个scrollview CCLayer *layer = CCLayer::create(); //创建一个层,作为滚动的内容 char helpstr[30] = {0}; for (int i=1;i<=6;i++) { sprintf(helpstr,"Help/Help_%02d_chs.png",i); CCSprite *sprite = CCSprite::create(helpstr); sprite->setScaleX(2.0); sprite->setScaleY(1.0); sprite->setPosition(ccp(size.width*(i-0.5),size.height/2+25)); layer->addChild(sprite); } layer->setAnchorPoint(CCPointZero); layer->setPosition(CCPointZero); scrollView->setPosition(CCPointZero); scrollView->setContentOffset(CCPointZero); layer->setContentSize(CCSizeMake(480*6, 320)); //设置滚动区域的大小 scrollView->setContentSize(CCSizeMake(480, 320)); //设置显示区域的大小 scrollView->setContainer(layer); //设置需要滚动的内容 scrollView->setTouchEnabled(false); //因为要自己实现触摸消息,所以这里设为false scrollView->setDelegate(this); scrollView->setDirection(CCScrollViewDirectionHorizontal); //设置滚动的方向,有三种可以选择 this->addChild(scrollView);