Ejemplo n.º 1
0
void ThirdServerScene::toServerList() {
    if (this->getChildByTag(loginLayerTag) != NULL) {
        this->removeChildByTag(loginLayerTag,true);
    }
    CCLayer* loginLayer = CCLayer::create();
    loginLayer->setTag(loginLayerTag);
    loginLayer->setPosition(ccp(0,0));
    
    CCLayer* displayLayer = CCLayer::create();
    CCSprite* loginBack = CCSprite::createWithSpriteFrameName("serverShadow.png");
    loginBack->setPosition(ccp(0,0));
    loginBack->setAnchorPoint(ccp(1,0));
    loginBack->setScale(2);
    displayLayer->addChild(loginBack);
    displayLayer->setTag(loginDisplayLayerTag);
    loginLayer->addChild(displayLayer);
    displayLayer->setPosition(ccp(winSize.width-645,960));
    
    CCSprite* serverListLabel = CCSprite::createWithSpriteFrameName("serverlistTipLabel.png");
    serverListLabel->setPosition(ccp(-285,325));
    displayLayer->addChild(serverListLabel);
    
    //    CCSprite* upTip = CCSprite::createWithSpriteFrameName("serverlistTipCornor.png");
    //    upTip->setPosition(ccp(-300,65));
    //    upTip->setRotation(180);
    //    upTip->setScale(0.66);
    //    upTip->setColor(ccc3(200,200,200));
    //    upTip->setTag(upTipTag);
    //
    //    displayLayer->addChild(upTip);
    
    CCSprite* downTip = CCSprite::createWithSpriteFrameName("serverlistTipCornor.png");
    downTip->setPosition(ccp(-300,50));
    downTip->setScale(0.66);
    downTip->setColor(ccc3(200,200,200));
    downTip->setTag(downTipTag);
    downTip->runAction(CCRepeatForever::create(static_cast<CCSequence*>(CCSequence::create( CCEaseIn::create(CCMoveBy::create(0.25,ccp(0,-10)),1.5),CCEaseOut::create(CCMoveBy::create(0.25,ccp(0,10)),1.5),NULL))));
    
    displayLayer->addChild(downTip);
    displayLayer->runAction(CCEaseElasticOut::create(CCMoveTo::create(0.35, ccp(winSize.width-394,280)), 1));
    CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect("sfx_popCreator.mp3");
    CCObject* obj;
    int i = 0;
    
    ServerSelectScroll2* scroll = ServerSelectScroll2::create(-507);
    scroll->setOriPosition(ccp(winSize.width-890,370));
    scroll->setContentSize(CCSizeMake(450, 200));
    
    scroll->setMapSize(CCSizeMake(450, 50*(beans->count()+3)));
    scroll->setPosition(ccp(winSize.width-765+0.33*50*(beans->count()-1)-224,-scroll->getMapSize().height+scroll->getViewSize().height+scroll->getOriPosition().y+680));
    
    scroll->runAction(CCEaseElasticOut::create(CCMoveBy::create(0.35, ccp(224,-680)), 1));
    CCARRAY_FOREACH(beans,obj) {
        SeverInfoBean* bean = (SeverInfoBean*)obj;
        CCSprite* layer = CCSprite::create("transparent.png");
        //        CCSprite* transParent = CCSprite::create("transparent.png");
        layer->setScaleX(270/layer->getContentSize().width);
        layer->setScaleY(33/layer->getContentSize().height);
        layer->setContentSize(CCSizeMake(225,33));
        layer->setOpacity(100);
        
        
        CCLabelTTF* label = CCLabelTTF::create(bean->getServerName()->getCString(),"Arial",33);
        label->setPosition(ccp(90/layer->getScaleX(),16/layer->getScaleY()));
        layer->addChild(label,2);
        label->setTag(serverNameLabelTag);
        label->setScaleX(1/layer->getScaleX());
        label->setScaleY(1/layer->getScaleY());
        if (bean->serverId == cacheServerId) {
            label->setColor(ccc3(155,155,155));
        }
        CCLabelTTF* stateLabel =CCLabelTTF::create(bean->getServerStatus()->getCString(),"Arial",30);
        stateLabel->setPosition(ccp(236/layer->getScaleX(),16/layer->getScaleY()));
        if (bean->getServerStatus()->compare("正常") == 0 || bean->getServerStatus()->compare("推荐") == 0) {
            stateLabel->setColor(ccc3(0,255,0));
        } else if (bean->getServerStatus()->compare("繁忙") == 0) {
            stateLabel->setColor(ccc3(255,255,0));
        } else if (bean->getServerStatus()->compare("火爆") == 0) {
            stateLabel->setColor(ccc3(167,87,168));
        } else {
            stateLabel->setColor(ccc3(166,166,166));
        }
        stateLabel->setScaleX(1/layer->getScaleX());
        stateLabel->setScaleY(1/layer->getScaleY());
        layer->addChild(stateLabel,2);
        
        
        MyMenuItem* serverItem = MyMenuItem::create(layer,this,menu_selector(ThirdServerScene::toChangeServer));
        
        serverItem->setPosition(ccp(-(i+3)*17+135,26+50*(i+3)));
        //        serverItem->setAnchorPoint(ccp(0,0));
        serverItem->setUserObject(bean);
        scroll->addChild(serverItem);
        //        dividingLength*i+33
        
        i++;
    }