//测试只能纵向滚动
void HelloWorld::test2()
{
	CCSize visableSize = CCSizeMake(480, 320); //屏幕大小
	CCSize mysize = CCSizeMake(150,220); //容器大小

//创建容器、设置大小
	CCLayerColor* scrollLayer = CCLayerColor::create( ccc4(255,255,255,255) );
	scrollLayer->setContentSize(mysize);

//容器中添加四个按钮
	for(int i = 1; i <= 4; i++) 
	{
		char file[20];
		sprintf(file, "btn%d.png", i);
		CCSprite* btn = CCSprite::create(file);
		btn->setPosition( ccp(mysize.width/2, 220 - 50*i) );
		scrollLayer->addChild(btn);
	}

//创建滚动视图CCScrollView
	//可视区域大小150*100 、 容器为scrollLayer
	CCScrollView* scrollView = CCScrollView::create(CCSizeMake(150, 100), scrollLayer);
	scrollView->setPosition( visableSize/2 - ccp(150/2.0, 100/2.0) );
	this->addChild(scrollView, 0, 2);
	
	//设置为只能纵向滚动
	scrollView->setDirection(kCCScrollViewDirectionVertical);

	//委托代理
	scrollView->setDelegate(this);

}
//测试图片滚动
void HelloWorld::test1()
{
	CCSize visableSize = CCSizeMake(480, 320); //屏幕大小
	CCSize mysize = CCSizeMake(960,600); //容器大小

	
//创建容器、设置大小
	CCLayerColor* scrollLayer = CCLayerColor::create( ccc4(255,255,255,255) );
	scrollLayer->setContentSize(mysize);
	
//容器中的东西
	CCSprite* bg = CCSprite::create("war.png");
	bg->setPosition( ccp(960/2.0, 600/2.0) );
	scrollLayer->addChild(bg);


//创建滚动视图CCScrollView
	CCScrollView* scrollView = CCScrollView::create();
	this->addChild(scrollView, 0, 1);
	
	//属性设置
	scrollView->setContainer(scrollLayer); //设置容器
	scrollView->setViewSize( visableSize ); //可视区域大小
	scrollView->setBounceable(true); //是否具有弹性
	
	//委托代理
	scrollView->setDelegate(this);
}
Esempio n. 3
0
bool GuideScene::init()
{
    if (!CCLayer::init()) {
        return false;
    }
    CCLOG("/**~~~~~~~~~~~~~~~~GuideScene:init()~~~~~~~~~~~~~~~~~");
    //取出主屏幕的尺寸,以及初始化数据
    size = CCDirector::sharedDirector()->getVisibleSize();
//    CCSprite* whiteBg = CCSprite::create("ZF_Shoot_whiteBg.png",CCRectMake(0,0,size.width,size.height));
//    whiteBg->setPosition(ccp(size.width*0.5,size.height*0.5));
//    whiteBg->setContentSize(size);
//    this->addChild(whiteBg,0);
    
    CCSprite* helpBg = CCSprite::create("ZF_Shoot_help.png");
    helpBg->setAnchorPoint(ccp(0.5,0.5));
    helpBg->setPosition(ccp(size.width*0.5,size.height*0.5));
    this->addChild(helpBg,0);
    
    //1.create a container
    CCLayer* container = CCLayer::create();
    CCSprite* guide = CCSprite::create("ZF_Shoot_guide.png");
    guide->setAnchorPoint(ccp(0.5,1));
    guide->setPosition(ccp(size.width*0.5,size.height));
    container->addChild(guide,1);
    container->setContentSize(size);
    
    
    //2.create a scrollView
    CCScrollView* scrollView = CCScrollView::create(CCSizeMake(size.width*0.5, size.height*3));
    addChild(scrollView);
    scrollView->setAnchorPoint(ccp(0.5,0.5));
    scrollView->setPosition(ccp(10,size.height*0.23));
    
    //3.setOption
    scrollView->setBounceable(true);
    scrollView->setViewSize(CCSizeMake(size.width, size.height*0.55));
    scrollView->setContainer(container);
    scrollView->setDirection(kCCScrollViewDirectionVertical);
    scrollView->setTouchEnabled(true);
    scrollView->setDelegate(this);
    scrollView->unscheduleAllSelectors();
    
    
    //4.closeMenu
    CCMenuItemImage *pCloseItem = CCMenuItemImage::create(
                                                          "ZF_Shoot_button_coinList_back2.png",
                                                          "ZF_Shoot_button_coinList_back1.png",
                                                          this,
                                                          menu_selector(GuideScene::menuCloseCallBack) );
    pCloseItem->setPosition( CCPointMake(size.width*0.5-235 , size.height*0.92) );
    pCloseItem->setTag(5);
    CCMenu* pMenu = CCMenu::create(pCloseItem, NULL);
    pMenu->setPosition( CCPointZero );
    addChild(pMenu);
    
    
    return true;
}
//测试背包翻页
void HelloWorld::test3()
{
	CCSize visableSize = CCSizeMake(480, 320); //屏幕大小
	CCSize mysize = CCSizeMake(300,80); //容器大小

//创建容器、设置大小
	CCLayerColor* scrollLayer = CCLayerColor::create( ccc4(255,255,255,255) );
	scrollLayer->setContentSize(mysize);

//容器中添加三个图片
	for(int i = 1; i <= 3; i++) 
	{
		char file[20];
		sprintf(file, "sp%d.png", i);
		CCSprite* sp = CCSprite::create(file);
		sp->setPosition( ccp(100*i - 50, 40) );
		scrollLayer->addChild(sp);
	}

//创建滚动视图CCScrollView
	//可视区域大小100*80 、 容器为scrollLayer
	CCScrollView* scrollView = CCScrollView::create(CCSizeMake(100, 80), scrollLayer);
	scrollView->setPosition( visableSize/2 - ccp(100/2.0, 0) );
	this->addChild(scrollView, 0, 3);

	//属性设置
	scrollView->setTouchEnabled(false); //关闭触碰事件,无法触摸滚动

	//委托代理
	scrollView->setDelegate(this);


//创建背包翻页按钮
	//前翻pBack、后翻pFront
	pBack = CCMenuItemImage::create("b1.png", "b2.png", "b3.png", this, menu_selector(HelloWorld::scrollImage) );
	pFront = CCMenuItemImage::create("f1.png", "f2.png", "f3.png", this, menu_selector(HelloWorld::scrollImage) );
	pBack->setPosition( ccp(visableSize.width/2 - 100, 60) );
	pFront->setPosition( ccp(visableSize.width/2 + 100, 60) );
	CCMenu* pMenu = CCMenu::create(pBack, pFront, NULL);
	pMenu->setPosition(CCPointZero);
	this->addChild(pMenu, 0, 100);

	pBack->setEnabled(false);
	pageNumber = 0; //第0页

}
static int tolua_Cocos2dx_CCScrollView_registerScriptHandler(lua_State* tolua_S)
{
#ifndef TOLUA_RELEASE
    tolua_Error tolua_err;
    if (
        !tolua_isusertype(tolua_S,1,"CCScrollView",0,&tolua_err) ||
        !toluafix_isfunction(tolua_S,2,"LUA_FUNCTION",0,&tolua_err) ||
        !tolua_isnumber(tolua_S, 3, 0, &tolua_err)               ||
        !tolua_isnoobj(tolua_S,4,&tolua_err)
        )
        goto tolua_lerror;
    else
#endif
    {
        CCScrollView* self = (CCScrollView*)  tolua_tousertype(tolua_S,1,0);
#ifndef TOLUA_RELEASE
        if (!self) tolua_error(tolua_S,"invalid 'self' in function 'registerScriptHandler'", NULL);
#endif
        if (NULL == self->getDelegate())
        {
            LuaScrollViewDelegate* delegate = new LuaScrollViewDelegate();
            if (NULL == delegate)
                return 0;
            
            self->setUserObject(delegate);
            self->setDelegate(delegate);
            
            delegate->release();
        }
        
        LUA_FUNCTION nFunID = (  toluafix_ref_function(tolua_S,2,0));
        int scriptHandlerType = ((int)  tolua_tonumber(tolua_S,3,0));
        self->registerScriptHandler(nFunID,scriptHandlerType);
    }
    return 0;
#ifndef TOLUA_RELEASE
tolua_lerror:
    tolua_error(tolua_S,"#ferror in function 'registerScriptHandler'.",&tolua_err);
    return 0;
#endif
}
Esempio n. 6
0
void CCScrollViewCreator::endNode(CCNode* pNode)
{
    CCScrollView* pScrollView =  (CCScrollView* )pNode;
    pScrollView->setDelegate(dynamic_cast<CCScrollViewDelegate*>(mRootDelegate));
    CCNodeCreator::setAttribute(pNode);
}
Esempio n. 7
0
void RankScene::rankListDraw(int _tibaoType){

    tableIndex = 1;
    
    //1.主框体底板
    CCSprite* ranklistTable = CCSprite::createWithSpriteFrameName("ranklistTable.png");
    ranklistTable->setPosition(ccp(size.width/2, size.height/2+winDif*alpha*alpha));
    layerToRoll->addChild(ranklistTable,1);
    
    //2.两个模式的排行榜按钮
    CCSprite* RankListTitle = CCSprite::createWithSpriteFrameName("RankListTitle.png");
    RankListTitle->setPosition(ccp(size.width/2,size.height*1605/1700+winDif*alpha*alpha));
    layerToRoll->addChild(RankListTitle,4,9);
    
    //3.下面四个按钮
    CCSprite* backButtonSprite = CCSprite::createWithSpriteFrameName("back_rank.png");
    CCSprite* backButtonSprite_s = CCSprite::createWithSpriteFrameName("back-s_rank.png");
    CCSprite* inviteButtonSprite = CCSprite::createWithSpriteFrameName("invite_rank.png");
    CCSprite* inviteButtonSprite_s = CCSprite::createWithSpriteFrameName("invite-s_rank.png");
    CCSprite* shareButtonSprite = CCSprite::createWithSpriteFrameName("shareButton_rank.png");
    CCSprite* shareButtonSprite_s = CCSprite::createWithSpriteFrameName("shareButton-s_rank.png");
    CCSprite* ListListButtonSprite = CCSprite::createWithSpriteFrameName("ListListButton.png");
    CCSprite* ListListButtonSprite_s = CCSprite::createWithSpriteFrameName("ListListButton-s.png");
    CCMenuItemSprite* backButton = CCMenuItemSprite::create(backButtonSprite,backButtonSprite_s,this,menu_selector(RankScene::backToTibaoSelection));
    CCMenuItemSprite* inviteButton = CCMenuItemSprite::create(inviteButtonSprite,inviteButtonSprite_s,this,menu_selector(RankScene::inviteFriends));
    CCMenuItemSprite* shareButton = CCMenuItemSprite::create(shareButtonSprite,shareButtonSprite_s,this,menu_selector(RankScene::shareRank));
    CCMenuItemSprite* ListListButton = CCMenuItemSprite::create(ListListButtonSprite,ListListButtonSprite_s,this,menu_selector(RankScene::goToRankListList));
    backButton->setPosition(ccp(size.width*111/700,size.height*1017/2200+winDif*alpha*alpha));
    inviteButton->setPosition(ccp(size.width*272/700, size.height*1017/2200+winDif*alpha*alpha));
    shareButton->setPosition(ccp(size.width*430/700, size.height*1017/2200+winDif*alpha*alpha));
    ListListButton->setPosition(ccp(size.width*589/700, size.height*1017/2200+winDif*alpha*alpha));
    backButton->setTag(11);
    inviteButton->setTag(12);
    shareButton->setTag(13);
    ListListButton->setTag(14);
    bottomMenu = CCMenu::create(backButton,inviteButton,shareButton,ListListButton,NULL);
    bottomMenu->setPosition(CCPointZero);
    layerToRoll->addChild(bottomMenu,3,10);
    
    //4.上面的遮罩板
    CCSprite* rankListCover = CCSprite::createWithSpriteFrameName("rankListCover.png");
    rankListCover->setPosition(ccp(size.width*249/500,size.height*327/360+winDif*alpha*alpha));
    layerToRoll->addChild(rankListCover,3);
    
    //5.几天后结算
    daysLeftLabel = CCLabelTTF::create("0天 后结算本周排名", "Arial Rounded", 17);
    daysLeftLabel->setPosition(ccp(size.width/2, size.height*320/360+winDif*alpha*alpha));
    layerToRoll->addChild(daysLeftLabel,4,16);
    
    //6.题包名称
    CCLabelBMFont* rankName = CCLabelBMFont::create(tibaoName[_tibaoType].c_str(), "puzzlename_list2.fnt");
    rankName->setScale(0.417);
    rankName->setPosition(ccp(size.width/2, size.height*1710/1800+winDif*alpha*alpha));
    layerToRoll->addChild(rankName,5,15);
    
    //7.设置scrollview
    ContainerLayer = CCLayerColor::create(ccc4(0,0,0,0));
    ContainerLayer->setContentSize(CCSizeMake(size.width, size.height*2.14));
    ContainerLayer->setPosition(ccp(0,-size.height*1.675+winDif/130*alpha));

    //8. 1-21名的格子
    for(int i = 0 ; i < 20 ; i++){
        CCSprite* RankTable = CCSprite::createWithSpriteFrameName("other_rank.png");
        RankTable->setPosition(ccp(size.width/2, size.height*2230/1120-size.height*i*63/660+winDif/130*alpha));
        ContainerLayer->addChild(RankTable,1,20+i);
    }
    
    //9.初始化scrollview
    CCScrollView* pScrollView = CCScrollView::create(CCSizeMake(size.width, size.height*358/768));
    pScrollView->setPosition(ccp(0, size.height/2+winDif*alpha*alpha));
    layerToRoll->addChild(pScrollView,1,999);
    pScrollView->isDragging();
    pScrollView->isTouchMoved();
    pScrollView->setBounceable(true);
    pScrollView->setContainer(ContainerLayer);
    pScrollView->getViewSize();
    pScrollView->updateInset();
    pScrollView->setTouchEnabled(true);
    pScrollView->setDelegate(this);
    pScrollView->setDirection(kCCScrollViewDirectionVertical);
}