zoukankan      html  css  js  c++  java
  • cocos2dx ScrollView 测试三 指示器

    类似于iphone的主桌面,下面有一排小圆点的指示器,指示有几页,当前第几页。

    ScrollView是继承CCLayer,我们直接把指示器加到这里面试试。

    先加小圆点的图片进去。

    HelloWorld::init方法

        this->addChild(_scrollView);
        CCSprite *pointer2 = CCSprite::create("pointer.png");
        pointer2->setPosition(ccp(VisibleRect::center().x,200));
        _scrollView->addChild(pointer2, 10);
        
        CCSprite *pointer1 = CCSprite::create("pointer.png");
        pointer1->setPosition(ccp(VisibleRect::center().x-30,200));
        _scrollView->addChild(pointer1, 10);
        
        CCSprite *pointer3 = CCSprite::create("pointer.png");
        pointer3->setPosition(ccp(VisibleRect::center().x+30,200));
        _scrollView->addChild(pointer3, 10);
        return true;

    发现上面的做法不行,小圆点跟着拖动走了....否决!!

    那就把小圆点加到外面吧~~

    _scrollView = MyScrollView::create(CCSizeMake(640, 1136));
        //_scrollView->setContentSize();
        _scrollView->setDelegate(this);
        _scrollView->setTouchPriority(1);
        _scrollView->setContainer(container);
        _scrollView->setDirection(kCCScrollViewDirectionHorizontal);
        
        CCSprite *pointer1 = CCSprite::create("pointer_selected.png");
        pointer1->setPosition(ccp(VisibleRect::center().x-30,200));
        this->addChild(pointer1, 10,101);
        
        this->addChild(_scrollView);
        CCSprite *pointer2 = CCSprite::create("pointer.png");
        pointer2->setPosition(ccp(VisibleRect::center().x,200));
        this->addChild(pointer2, 10,102);
        
        CCSprite *pointer3 = CCSprite::create("pointer.png");
        pointer3->setPosition(ccp(VisibleRect::center().x+30,200));
        this->addChild(pointer3, 10,103);
        return true;
    void HelloWorld::scrollViewDidScroll(CCScrollView* view){
        int offset = (int)view->getContentOffset().x;
        
        CCTexture2D *texture = CCTextureCache::sharedTextureCache()->addImage("pointer_selected.png");
        CCTexture2D *textureNor = CCTextureCache::sharedTextureCache()->addImage("pointer.png");
        CCSprite *sp101 = (CCSprite*) this->getChildByTag(101);
        CCSprite *sp102 = (CCSprite*) this->getChildByTag(102);
        CCSprite *sp103 = (CCSprite*) this->getChildByTag(103);
        sp101->setTexture(textureNor);
        sp102->setTexture(textureNor);
        sp103->setTexture(textureNor);
        if(offset>-320){
            sp101->setTexture(texture);
        }else if(offset<=-320&&offset>-960){
            sp102->setTexture(texture);
        }else{
            sp103->setTexture(texture);
        }
        CCLog("scrollViewDidScroll offset:%d",offset);
    }

    见效果图

    等有时间把以上这些封装总结一下吧。

  • 相关阅读:
    CF1454F Array Partition
    leetcode1883 准时抵达会议现场的最小跳过休息次数
    leetcode1871 跳跃游戏 VII
    leetcode1872 石子游戏VIII
    CF1355C Count Triangles
    CF1245D Shichikuji and Power Grid
    CF1368C Even Picture
    CF1368D AND, OR and square sum
    CF1395C Boboniu and Bit Operations
    SpringBoot和开发热部署
  • 原文地址:https://www.cnblogs.com/hanhongmin/p/3501899.html
Copyright © 2011-2022 走看看