Beispiel #1
0
void SGScrollLabel::constructView()
{
    _arrayLabel = CCArray::create();
    _arrayLabel->retain();
    
    for(int i=0;i<=_arrayString->count()/this->getFirstRowWordCount();i++)
    {
        std::string string;
        for(int h=i*this->getFirstRowWordCount();h<(i+1)*getFirstRowWordCount();h++)
        {
            if(h >= _arrayString->count())
            {
                break;
            }
            
            CCString *str = (CCString*)_arrayString->objectAtIndex(h);
            string.append(str->getCString());
        }
        
        CCLabelTTF *label = CCLabelTTF::create(string.c_str(), FONT_BOXINFO, 24);
        _arrayLabel->addObject(label);
        
    }
    
    CCPoint bottomCenter = ccp(_viewSize.width/2,0);
    
    for(int i=0;i<_arrayLabel->count();i++)
    {
        CCLabelTTF *label = (CCLabelTTF*)_arrayLabel->objectAtIndex(i);
        label->setPosition(ccpAdd(bottomCenter, ccp(0, - label->getContentSize().height)));
        label->setOpacity(0.0f);
        label->setHorizontalAlignment(kCCTextAlignmentLeft);
        this->addChild(label);
        //动画
        CCDelayTime *delayTime = CCDelayTime::create(i*2.0f);
        
        CCMoveTo *move2 = CCMoveTo::create(0.5f,ccpAdd(label->getPosition(), ccp(0, _viewSize.height/10)));
        CCFadeIn *fadeIn = CCFadeIn::create(0.5f);
        CCFiniteTimeAction *spawn1 = CCSpawn::create(move2,fadeIn,NULL);
        
        CCMoveTo *move = CCMoveTo::create(5.0f, ccpAdd(label->getPosition(), ccp(0, _viewSize.height)));
        
        CCMoveTo *move3 = CCMoveTo::create(0.5f, ccpAdd(label->getPosition(),ccp(0, _viewSize.height*11/10)));
        CCFadeOut *fadeOut = CCFadeOut::create(0.5f);
        CCFiniteTimeAction *spawn2 = CCSpawn::create(move3,fadeOut,NULL);
        
        CCFiniteTimeAction *sequence = CCSequence::create(delayTime,spawn1,move,spawn2,NULL);
        label->runAction(sequence);
    }
    
    CCDelayTime *delay = CCDelayTime::create(_arrayLabel->count()*2+5);
    CCCallFunc *call = CCCallFunc::create(this, callfunc_selector(SGScrollLabel::callFunction));
    CCFiniteTimeAction *sequence2 = CCSequence::create(delay,call,NULL);
    this->runAction(sequence2);
}
Beispiel #2
0
void FontTest::showFont(const char *pFont)
{
    CCSize s = CCDirector::sharedDirector()->getWinSize();

    CCSize blockSize = CCSizeMake(s.width/3, 200);
    float fontSize = 26;

    removeChildByTag(kTagLabel1, true);
    removeChildByTag(kTagLabel2, true);
    removeChildByTag(kTagLabel3, true);
    removeChildByTag(kTagLabel4, true);

    CCLabelTTF *top = CCLabelTTF::create(pFont, pFont, 24);
    CCLabelTTF *left = CCLabelTTF::create("alignment left", pFont, fontSize,
                                          blockSize, kCCTextAlignmentLeft, verticalAlignment[vAlignIdx]);
    CCLabelTTF *center = CCLabelTTF::create("alignment center", pFont, fontSize,
                                            blockSize, kCCTextAlignmentCenter, verticalAlignment[vAlignIdx]);
    CCLabelTTF *right = CCLabelTTF::create("alignment right", pFont, fontSize,
                                           blockSize, kCCTextAlignmentRight, verticalAlignment[vAlignIdx]);

    CCLayerColor *leftColor = CCLayerColor::create(ccc4(100, 100, 100, 255), blockSize.width, blockSize.height);
    CCLayerColor *centerColor = CCLayerColor::create(ccc4(200, 100, 100, 255), blockSize.width, blockSize.height);
    CCLayerColor *rightColor = CCLayerColor::create(ccc4(100, 100, 200, 255), blockSize.width, blockSize.height);

    leftColor->ignoreAnchorPointForPosition(false);
    centerColor->ignoreAnchorPointForPosition(false);
    rightColor->ignoreAnchorPointForPosition(false);


    top->setAnchorPoint(ccp(0.5, 1));
    left->setAnchorPoint(ccp(0,0.5));
    leftColor->setAnchorPoint(ccp(0,0.5));
    center->setAnchorPoint(ccp(0,0.5));
    centerColor->setAnchorPoint(ccp(0,0.5));
    right->setAnchorPoint(ccp(0,0.5));
    rightColor->setAnchorPoint(ccp(0,0.5));

    top->setPosition(ccp(s.width/2,s.height-20));
    left->setPosition(ccp(0,s.height/2));
    leftColor->setPosition(left->getPosition());
    center->setPosition(ccp(blockSize.width, s.height/2));
    centerColor->setPosition(center->getPosition());
    right->setPosition(ccp(blockSize.width*2, s.height/2));
    rightColor->setPosition(right->getPosition());

    this->addChild(leftColor, -1);
    this->addChild(left, 0, kTagLabel1);
    this->addChild(rightColor, -1);
    this->addChild(right, 0, kTagLabel2);
    this->addChild(centerColor, -1);
    this->addChild(center, 0, kTagLabel3);
    this->addChild(top, 0, kTagLabel4);
}
bool SGFirstAdvanceBox::init(SGBoxDelegate *bdg)
{
    ResourceManager::sharedInstance()->bindTexture("sgfirstlayer/sgfirstlayer.plist", RES_TYPE_LAYER_UI, sg_firstAdvanceBox, LIM_PNG_AS_PNG);
    
    if (!SGBaseBox::init(bdg,box_firstAdvanceTag,CCSizeMake(600, 450),true,true))//,CCSizeMake(535, 125)
    {
        return false;
    }
    
    CCPoint center = SGLayout::getPoint(kMiddleCenter);
    fontbg->setPreferredSize(CCSizeMake(600-55,450-150));
    fontbg->setPosition(ccpAdd(center,ccp(0,0)));
    CCSprite *title = CCSprite::createWithSpriteFrameName("mainlayer_font_xzjj.png");
    this->addChild(title);
    title->setPosition(biao->getPosition());
    
    CCLabelTTF *label = CCLabelTTF::create(str_AllTaskLayer_str22, FONT_BOXINFO, 26);
    CCLabelTTF *label1 = CCLabelTTF::create(str_AllTaskLayer_str23, FONT_BOXINFO, 26);
    this->addChild(label);
    this->addChild(label1);
    label->setColor(ccc3(0x92,0x34,0x00));
    label1->setColor(ccc3(0x92,0x34,0x00));
//     label->setColor(ccWHITE);
//     label1->setColor(ccWHITE);
    label1->setAnchorPoint(ccp(0, 0.5f));
    label->setPosition(ccpAdd(center, ccp(0, -170)));
    label1->setPosition(ccpAdd(label->getPosition(), ccp(-label->getContentSize().width*.5f, -label->getContentSize().height*1.0)));
    
    SGButton *wjk = SGButton::createFromLocal("upwar_cell_bg.png", str_AllTaskLayer_str24, this, menu_selector(SGFirstAdvanceBox::advanceOfficer),ccp(0,3),FONT_PANGWA,ccWHITE,50,false,true);
    int modelTag = SGStaticDataManager::shareStatic()->getGuideTagById(guide_tag_21);
    wjk->setTag(modelTag);
    this->addBtn(wjk);
    wjk->setScaleX(0.9);
    SGButton *zbk = SGButton::createFromLocal("upwar_cell_bg.png", str_AllTaskLayer_str25, this, menu_selector(SGFirstAdvanceBox::advanceEquipment),ccp(0,3),FONT_PANGWA,ccWHITE,50,false,true);
    this->addBtn(zbk);
    zbk->setScaleX(0.9);
    wjk->setPosition(ccpAdd(center, ccp(0,wjk->getContentSize().height/2+20)));
    zbk->setPosition(ccpAdd(center, ccp(0,-wjk->getContentSize().height/2-20)));

    SGButton *backBtn = SGButton::create("box_btnbg.png", "public_font_quxiao.png", this, menu_selector(SGFirstAdvanceBox::boxClose),CCPointZero,false,true);
    this->addBtn(backBtn);
    backBtn->setPosition(ccpAdd(center, ccp(0, -450/2+5 -40)));
    
    return true;
}
bool TitleLayer::init()
{
	if ( !CCLayer::init() )
	{
		return false;
	}
    
    // Get window size
    CCSize windowSize = CCDirector::sharedDirector()->getWinSize();
    
    // Create text label for title of game - "@stroids" - don't sue me Atari!
    CCLabelTTF *title = CCLabelTTF::labelWithString("@stroids", "Courier", 64.0);
    
    // Position title at center of screen
    title->setPosition(ccp(windowSize.width / 2, windowSize.height/2));
    
    // Add to layer
    this->addChild(title, 1);
    
    // Set the default CCMenuItemFont font
    CCMenuItemFont::setFontName("Courier");
    
    // Create "play," "scores," and "controls" buttons - when tapped, they call methods we define: playButtonAction and scoresButtonAction
    CCMenuItemFont *playButton = CCMenuItemFont::itemFromString("play", this, menu_selector(TitleLayer::playButtonAction));
    CCMenuItemFont *scoresButton = CCMenuItemFont::itemFromString("scores", this, menu_selector(TitleLayer::scoresButtonAction));
    CCMenuItemFont *controlsButton = CCMenuItemFont::itemFromString("controls", this, menu_selector(TitleLayer::controlsButtonAction));
    
    // Create menu that contains our buttons
    CCMenu *menu = CCMenu::menuWithItems(playButton, scoresButton, controlsButton, NULL);

    // Align buttons horizontally
    menu->alignItemsHorizontallyWithPadding(20);
    
    // Set position of menu to be below the title text
    menu->setPosition(ccp(windowSize.width / 2, title->getPosition().y - title->getContentSize().height / 1.5));

    // Add menu to layer
    this->addChild(menu, 2);
        
	return true;
}
Beispiel #5
0
bool S131More::setUpSubClass2()
{
	bool bRet = false;
	do
	{
        
        refreshItemImage->setOpacity(1.0);
        CCSprite * showbigPicture = CCSprite::create("S13PLeftimg.png");
        showbigPicture->setPosition( ScriptParser::getPositionFromPlist(plistDic,"S13PLeftimg"));
        this->addChild(showbigPicture,zNum);
		
        CCSprite * lineSprite = CCSprite::create("s13PMiddleString.png");
        lineSprite->setPosition( ccp(showbigPicture->getPosition().x+showbigPicture->getContentSize().width/2+20,showbigPicture->getPosition().y-50));
        this->addChild(lineSprite,zNum);
        
    
        CCPoint titleCnPosition =  CCPointMake(lineSprite->getPosition().x + 10,lineSprite->getPosition().y+lineSprite->getContentSize().height/2-40);
        
        float lastTitlePositionY = titleCnPosition.y;
        float lastLabelHeight;
        float lastLabelPositionY = titleCnPosition.y;
        
      
            CCSprite * dotTitleLineSprite = CCSprite::create("s131RightWordBottom.png");
        const char * titleCnStr;
        if (AppDelegate::S1NewsSelected ==10001)
        {
            titleCnStr = ScriptParser::getStringFromPlist(plistDic,"rightFirstTitleCn1");
        }
        else
        {
            titleCnStr = ScriptParser::getStringFromPlist(plistDic,"rightFirstTitleCn2");
        }
            float titleCnFontSize = ScriptParser::getFontSizeFromPlist(plistDic,"rightFirstTitleCn");
            CCSize titleCnSize = CCSizeMake(dotTitleLineSprite->getContentSize().width, titleCnFontSize);
            CCLabelTTF *titleCnLabel = CCLabelTTF::create(titleCnStr, s1FontName_macro, titleCnFontSize,titleCnSize, kCCTextAlignmentLeft, kCCVerticalTextAlignmentCenter);
            titleCnLabel->setAnchorPoint(ccp(0.0,0.5));
            titleCnLabel->setPosition(ccp(titleCnPosition.x,lastTitlePositionY));
            titleCnLabel->setColor(ccBLACK);
            this->addChild(titleCnLabel,zNum);
        
        const char * titleEnStr;
        if (AppDelegate::S1NewsSelected ==10001)
        {
            titleEnStr = ScriptParser::getStringFromPlist(plistDic,"rightFirstTitleEn1");
        }
        else
        {
            titleEnStr = ScriptParser::getStringFromPlist(plistDic,"rightFirstTitleEn2");
        }
        
            float titleEnFontSize = ScriptParser::getFontSizeFromPlist(plistDic,"rightFirstTitleEn");
            CCSize titleEnSize = CCSizeMake(dotTitleLineSprite->getContentSize().width, titleCnFontSize);
            CCLabelTTF *titleEnLabel = CCLabelTTF::create(titleEnStr, s1FontName_macro, titleEnFontSize,titleEnSize, kCCTextAlignmentLeft, kCCVerticalTextAlignmentCenter);
            titleEnLabel->setAnchorPoint(ccp(0.0,0.5));
            titleEnLabel->setPosition(ccp(titleCnLabel->getPosition().x+100,titleCnLabel->getPosition().y));
            titleEnLabel->setColor(ccGRAY);
            this->addChild(titleEnLabel,zNum);
            
            
            
            
            lastLabelHeight  = titleCnLabel->getContentSize().height;
            lastLabelPositionY = titleCnLabel->getPosition().y-40;
            dotTitleLineSprite->setPosition(ccp(titleCnLabel->getPosition().x + dotTitleLineSprite->getContentSize().width/2,titleCnLabel->getPosition().y-titleCnLabel->getContentSize().height+5));
            this->addChild(dotTitleLineSprite,zNum);
        
  
        if (AppDelegate::S1NewsSelected ==10001)
        {
            //rightDetailTitle = AppDelegate::rightDetailTitleMap1;
            rightBigTitle =  AppDelegate::rightDetailTitleMap1;
            
            rightTime = AppDelegate::rightTimeMap1;
           
            rightDetailTitle = AppDelegate::rightDetailSubTitleMap1;
        }
        else if(AppDelegate::S1NewsSelected ==10002)
        {
            //rightDetailTitle = AppDelegate::rightDetailTitleMap2;
            rightBigTitle =  AppDelegate::rightDetailTitleMap2;
            rightTime = AppDelegate::rightTimeMap2;
            rightDetailTitle = AppDelegate::rightDetailSubTitleMap2;
        }
        
        //rightBigTitle = ScriptParser::getGroupStringFromPlist(plistDic,"rightBigTitle");
    
   
        
       
        CCSize scrollPicSize = ScriptParser::getSizeFromPlist(plistDic,"scrollPic");
        CCPoint scrollPicPosition = ScriptParser::getPositionFromPlist(plistDic,"scrollPic");
        pTableView = CCTableView::create(this, scrollPicSize);
		pTableView->setDirection(kCCScrollViewDirectionVertical);
		pTableView->setAnchorPoint(ccp(0.0,1.0));
        pTableView->setPosition(scrollPicPosition);
		pTableView->setDelegate(this);
		pTableView->setVerticalFillOrder(kCCTableViewFillTopDown);
        this->addChild(pTableView,zNum+1000);
		pTableView->reloadData();
        
        
        
		bRet = true;
	} while (0);
    
	return bRet;
}
void WordTreeScene::update(float dt) {
    if( isIdle==true ) {
        return;
    }
    
    totalIdleTimes += dt;
    if( isProcessing==true ) {
        return;
    }
    else if( totalIdleTimes>=5.0f ) {
        totalIdleTimes = 0.0f;
        CCUserDefault::sharedUserDefault()->setStringForKey("FromCppToObjC", "requestWord");
    }
    
    static CCSize designResolutionSize = CCEGLView::sharedOpenGLView()->getDesignResolutionSize();
    
    ChipmunkManager::getInstance()->update(dt);
    WordModels::getInstance()->update(dt);
    
    Word* word = WordModels::getInstance()->getNotRenderedWord();
    if( word!=NULL ) {
        CCLabelTTF* wordLabel = CCLabelTTF::create(word->getWord()->getCString(), "Arial", DEFAULT_FONT_SIZE);
        
        float offsetX = CCRANDOM_MINUS1_1()*400;
        float offsetY = CCRANDOM_MINUS1_1()*300+100;
        wordLabel->setPosition(ccp(designResolutionSize.width/2+offsetX,designResolutionSize.height/2+offsetY));
        word->setLabel(wordLabel);
        word->setRendered(true);
        
        CCSprite* sprite = CCSprite::create("images/heart.png");
        sprite->setPosition(wordLabel->getPosition());
        CCSize labelSize = wordLabel->getContentSize();
        float spriteScale = MAX(labelSize.width, labelSize.height)/HEART_IMAGE_SIZE;
        sprite->setScale(spriteScale+spriteScale*0.3f);
        word->setSprite(sprite);
        
        this->addChild(sprite);
        this->addChild(wordLabel);
        
        updatePhysics(word);
        word = NULL;
        return;
    }
    
    
    word = WordModels::getInstance()->getDirtyWord();
    if( word!=NULL ) {
        CCLabelTTF* wordLabel = word->getLabel();
        CCSprite* sprite = word->getSprite();
        if( wordLabel!=NULL && sprite!=NULL ) {
            wordLabel->setFontSize(DEFAULT_FONT_SIZE+LABEL_INCREASE_SCALE_PER_WORD*word->getCount());
            
            CCSize labelSize = wordLabel->getContentSize();
            float spriteScale = MAX(labelSize.width, labelSize.height)/HEART_IMAGE_SIZE;
            sprite->setScale(spriteScale+spriteScale*0.3f);
            
            CCScaleTo* scaleUp = CCScaleTo::create(0.2f, spriteScale+spriteScale*0.5f);
            CCEaseIn* in = CCEaseIn::create(scaleUp, 2.0f);
            
            CCScaleTo* scaleDown = CCScaleTo::create(0.2f, spriteScale+spriteScale*0.3f);
            CCEaseOut* out = CCEaseOut::create(scaleDown, 2.0f);
            
            CCSequence* sequence = CCSequence::create(in, out, NULL);
            sprite->runAction(sequence);
            
            updatePhysics(word);
        }
        return;
    }
}
Beispiel #7
0
bool S4HeZuo::setUpSubClass()
{
	bool bRet = false;
	do
	{
        float firstStrFontSize = ScriptParser::getFontSizeFromPlist(plistDic,"firstTitle");
        CCLabelTTF *firstTitleLabel = CCLabelTTF::create(ScriptParser::getStringFromPlist(plistDic,"firstTitle"), s1FontName_macro, firstStrFontSize);
        firstTitleLabel->setColor(ccc3(193.0,159.0,113.0));
        firstTitleLabel->setPosition(ScriptParser::getPositionFromPlist(plistDic,"firstTitle"));
        this->addChild(firstTitleLabel,zNum+1);
        
        CCSprite * S1PSubBottomSprite = CCSprite::create("S1PSubBottom.png");
        S1PSubBottomSprite->setPosition( ccp(origin.x+visibleSize.width/2,firstTitleLabel->getPosition().y-firstTitleLabel->getContentSize().height/2-10));
        this->addChild(S1PSubBottomSprite,zNum);
        
        
        map<string, string> naviGroupStrMap =  ScriptParser::getGroupStringFromPlist(plistDic,"naviTitle");
        float naviFontSize = ScriptParser::getFontSizeFromPlist(plistDic,"naviTitle");
        CCPoint naviStrPosition = ScriptParser::getPositionFromPlist(plistDic,"naviTitle");
        
        for (int i=0; i<(int)naviGroupStrMap.size(); i++)
        {
            const char * labelStr = naviGroupStrMap[PersonalApi::convertIntToString(i+1)].c_str();
            
            CCLabelTTF *pLabel = CCLabelTTF::create(labelStr, s1FontName_macro, naviFontSize);
            pLabel->setPosition(ccp(naviStrPosition.x+(pLabel->getContentSize().width+20)*i,naviStrPosition.y));
            pLabel->setColor(ccc3(128.0,128.0,128.0));
            this->addChild(pLabel,zNum+1);
            
            if ( AppDelegate::S4SelectNavi == i+1)
            {
                pLabel->setColor(ccc3(255.0,255.0,255.0));
                CCSprite * selectFrameSprite = CCSprite::create("PSubNavBackground.png");
                selectFrameSprite->setScaleX(pLabel->getContentSize().width/selectFrameSprite->getContentSize().width);
                selectFrameSprite ->setPosition(pLabel->getPosition());
                this->addChild(selectFrameSprite,zNum);
            }
            
            CCSprite * sprite1 = CCSprite::create();
			CCSprite * sprite2 = CCSprite::create();
            
			CCMenuItemSprite *aItem = CCMenuItemSprite::create(
                                                               sprite1,
                                                               sprite2,
                                                               this,
                                                               menu_selector(S4HeZuo::menuCallback));
			CC_BREAK_IF(! aItem);
			aItem->setPosition(pLabel->getPosition());
            aItem->setContentSize(pLabel->getContentSize());
            aItem->setTag(btnTag+i+1);
			_menu ->addChild(aItem,zNum);
            
        }
        
        CC_BREAK_IF(! setUpSubClass2());
        
		bRet = true;
	} while (0);
    
	return bRet;
}
BaseSprite* MainLayerZhuangBeiBaseBody::getItemContentByIndex(unsigned int index)
{
    BaseSprite* bg = BaseSprite::create("mianban_zhuangbei_xiangxi.png");

    CCString tempStr;

    CCPoint picPos = ccp(75.0f, bg->getContentSize().height/2);

    {
        ImageData diWenData = ImageManager::getManager()->getImageData_DiWen_List(
                                  mEquipmentVec[index]->getEquipColor(),
                                  false,
                                  mEquipmentVec[index]->isPartOfSuit(),
                                  mEquipmentVec[index]->haveZhuanke());
        BaseSprite* diWen = BaseSprite::create(diWenData.getCurrentImageFile());
        diWen->setScale(diWenData.scale);
        diWen->setPosition(picPos);
        bg->addChild(diWen,0,TAG_BaseBody_TABLE_ITEM_DiWen);

        {
            BaseSprite *sprite = ImageManager::getManager()->getSpriteOfZhuangbei(mEquipmentVec[index],true,true);
            //sprite->setScale(data.scale);
            sprite->setScale(0.43f);
            sprite->setPosition(picPos);
            bg->addChild(sprite,0,TAG_BaseBody_TABLE_ITEM_Image);
        }

        //封印
        if (mEquipmentVec[index]->isInFengYin())
        {
            BaseSprite *fyImg = BaseSprite::create("shenbing_fengyin_suo.png");
            bg->addChild(fyImg, 0, TAG_BaseBody_TABLE_FengYin_Img);
            fyImg->setPosition(diWen->getPosition());
            fyImg->setScale(diWen->getContentSize().width*diWen->getScale() / fyImg->getContentSize().width);
        }

    }

    // 添加图片识别区
    {
        ImageData selecedData = ImageManager::getManager()->getImageData_DiWen_Selected(
                                    mEquipmentVec[index]->getEquipColor(),
                                    false,//mEquipmentVec[index]->isShenBing(),
                                    mEquipmentVec[index]->isPartOfSuit());
        BaseSprite* menuItemSel = BaseSprite::create(selecedData.getCurrentImageFile());
        menuItemSel->setScale(selecedData.scale);
        CCSprite* menuRect = CCSprite::createWithTexture(menuItemSel->getTexture());
        menuRect->setScale(0.0f);

        FXScrollMenu *menu = FXScrollMenu::create(
                                 mTableView->getParent()->convertToWorldSpace(mTableView->getPosition()), mTableView->getViewSize());
        bg->addChild(menu, 0, TAG_BaseBody_MENU);
        menu->setPosition(ccp(0,0));
        CCMenuItemSprite* t = CCMenuItemSprite::create(menuRect,menuItemSel,this,SEL_MenuHandler(&MainLayerZhuangBeiBaseBody::itemImageClicked));
        menu->addChild(t, 0, index);
        t->setPosition(picPos);
    }

    float left_x_start = 160 - 4;
    //名称
    {
        CCLabelTTF* label;
        char str[64];
        if (mEquipmentVec[index]->getEquipData().qianghua_data.qianghua_count != 0)
        {
            sprintf(str, "%s", mEquipmentVec[index]->getName().c_str());
        }
        else
        {
            sprintf(str, "%s", mEquipmentVec[index]->getName().c_str());
        }

        label = LF::lable(bg,str,ccp(left_x_start,190),24,fontStr_kaiti);
        label->setTag(TAG_BaseBody_LABLE_NAME);
        ccColor3B color = ImageManager::getManager()->getShowColor(mEquipmentVec[index]->getEquipColor(),false,mEquipmentVec[index]->isPartOfSuit());
        label->setColor(color);
    }

    //类型
    {
        std::string typeStr =
            CS::getZhuangbeiTypeName(mEquipmentVec[index]->getType(), mEquipmentVec[index]->getEquipColor());

        CCLabelTTF* label;
        label = LF::lable(bg,typeStr,ccp(left_x_start,165),18,fontStr_kaiti);
        label->setTag(TAG_BaseBody_LABLE_TYPE);
        label->setColor(fonColor_CiYao);
    }

    //白字
    {
        CCLabelTTF* label_baizhi = NULL;
        bool hasBaiZhi = false;
        {
            float baizi = 0;
            switch(mEquipmentVec[index]->getType())
            {
            case ZhuangbeiType_DanshouJian:
            case ZhuangbeiType_ShuangshouBishou:
            case ZhuangbeiType_ShuangshouFu:
            case ZhuangbeiType_DanshouFazhang:
            case ZhuangbeiType_ShuangshouFazhang:
            case ZhuangbeiType_Gong:
                hasBaiZhi = true;
                baizi = mEquipmentVec[index]->getGongjiLiAfterQianghua(false);
                break;
            case ZhuangbeiType_Dunpai:
            case ZhuangbeiType_KuijiaZhong:
            case ZhuangbeiType_KuijiaQin:
                hasBaiZhi = true;
                baizi = mEquipmentVec[index]->getHuJiaZhiAfterQianghua();
                break;
            default:
                break;
            }
            if (hasBaiZhi)
            {
                char str[64];
                sprintf(str, "%.1f", baizi);

                label_baizhi = LF::lable(bg,str,ccp(left_x_start,126),60,fontStr_BookAntiqua);
                label_baizhi->setTag(TAG_BaseBody_LABLE_BAIZI);
            }
            else
            {
                label_baizhi = LF::lable(bg,"",ccp(left_x_start,126),60,fontStr_BookAntiqua);
                label_baizhi->setTag(TAG_BaseBody_LABLE_BAIZI);
            }
        }
        //junshang
        CCLabelTTF* label_junshang = LF::lable(bg,LFStrings::getValue("junshang"),ccp(0,0),20,fontStr_kaiti);
        label_junshang->setAnchorPoint(ccp(0, 0.5));
        label_junshang->setPosition(
            ccp(label_baizhi->getPositionX()+label_baizhi->getContentSize().width+10, 116));
        label_junshang->setTag(TAG_BaseBody_LABLE_JUNSHANG_TXT);
        if(hasBaiZhi)
        {
            label_junshang->setVisible(true);
            if(mEquipmentVec[index]->getEquipType() == EquipType_FangJu)
                label_junshang->setString(LFStrings::getValue("huJia").c_str());
        }
        else
        {
            label_junshang->setVisible(false);
        }
    }

    //伤害详细
    if (mEquipmentVec[index]->getEquipType() == EquipType_WuQi)
    {
        CCLabelTTF* label;
        char str[64];
        sprintf(str, "%u-%u ", mEquipmentVec[index]->getEquipData().gongji_min
                , mEquipmentVec[index]->getEquipData().gongji_max);

        label = LF::lable(bg,str,ccp(left_x_start,87),20,fontStr_BookAntiqua);
        label->setTag(TAG_BaseBody_LABLE_SHANGHAIXIANGXI_NUM);
        label->setColor(fonColor_CiYao);
        CCLabelTTF* label2;
        label2 = LF::lable(bg,LFStrings::getValue("dianShangHai")
                           ,ccp(label->getPosition().x + label->getContentSize().width, label->getPositionY()),20,fontStr_kaiti);
        label2->setTag(TAG_BaseBody_LABLE_SHANGHAIXIANGXI_TXT);
        label2->setColor(fonColor_CiYao);
    }
    else
    {
        CCLabelTTF* label;
        label = LF::lable(bg,"",ccp(left_x_start,87),20,fontStr_kaiti);
        label->setTag(TAG_BaseBody_LABLE_SHANGHAIXIANGXI_NUM);
        CCLabelTTF* label2;
        label2 = LF::lable(bg,""
                           ,ccp(label->getPosition().x + label->getContentSize().width, label->getPositionY()),20,fontStr_kaiti);
        label2->setTag(TAG_BaseBody_LABLE_SHANGHAIXIANGXI_TXT);
    }

    //等级
    {
        CCLabelTTF* label;
        char str[64];
        sprintf(str, "%s %u ", LFStrings::getValue("dengji").c_str(), mEquipmentVec[index]->getEquipData().zhuangbei_level);
        label = LF::lable(bg,str,ccp(left_x_start,28),20,fontStr_kaiti);
        label->setColor(fonColor_FaGuang);
        label->setTag(TAG_BaseBody_LABLE_Level);
    }

    //人物
    {
        CCLabelTTF* label;
        int actorId = mEquipmentVec[index]->getActorId();
        if (actorId != INVALID_ID)
        {
            BaseActor* actor = MyselfManager::getManager()->getMyTeamActor(actorId);
            CCAssert(actor!=NULL,"");
            BaseActorProperty prop = actor->getCurrentProperty();
            label = LF::lable(bg,LF::getString("zhuangBeiYu")+prop.nameInChinese,ccp(0, 0),20,fontStr_kaiti);
        }
        else
        {
            label = LF::lable(bg,LF::getString("meiYouZhuangBei"),ccp(0, 0),20,fontStr_kaiti);
        }
        label->setColor(fonColor_FaGuang);
        label->setAnchorPoint(ccp(1, 0.5));
        label->setPosition(ccp( 590, 200));
        label->setTag(TAG_BaseBody_LABLE_OWNTO);
        if (actorId == INVALID_ID && mEquipmentVec[index]->getEquipData().profession_id != 0)
        {
            CCString temp;
            temp.initWithFormat("%s(%s)", LFStrings::getValue("ZhiYeXianZhi").c_str(),
                                BaseActorPropertyParser::getParser()->getExtraProerty((Profession)mEquipmentVec[index]->getEquipData().profession_id).nameInChinese.c_str());
            label->setString(temp.getCString());
            label->setColor(fonColor_JingGao);
        }
    }

    //魔法属性
    {
        int start_x = 400 + 38;
        Equipment* equip = mEquipmentVec[index];
        std::vector<std::string> vec = equip->getAllMofaShuxing(false);

        //大于5个  第五个就是 ......
        for(int i=0; i<vec.size(); ++i)
        {
            std::string txt = vec[i];

            BaseSprite* biaoji = BaseSprite::create("zhuangbei_xiangxi_biaoji.png");
            bg->addChild(biaoji, 0, TAG_BIAOJI+i);
            biaoji->setPosition(ccp(start_x, 170-i*28));
            //biaoji->setOpacity(80);

            CCLabelTTF* label;
            label = LF::lable(bg,txt,ccp(0,0),20,fontStr_kaiti);
            label->setColor(ImageManager::getManager()->getShowColor(ZhuangbeiColour_Fumo, false, false));
            label->setAnchorPoint(ccp(0, 0.5));
            label->setPosition(ccp(start_x+15, 170-i*28));
            label->setTag(i);

            if(vec.size()>6)
            {
                CCLog("Warrior:%s ---> equipment property > 6, current is [%d]", __FUNCTION__, vec.size());
                //	break;
            }
        }
        //洗练
        string xxx;
        CCSprite *diwen = (CCSprite*)bg->getChildByTag(TAG_BaseBody_TABLE_ITEM_DiWen);
        if (equip->canPurify(xxx,1) && diwen)
        {
            ZhuangbeiOptionLevel *layer = ZhuangbeiOptionLevel::createWithEquipment(equip);
            bg->addChild(layer,20);
            //layer->setScale(1/diwen->getScale());
            CCPoint pos = diwen->getPosition();
            pos.x -= diwen->getContentSize().width * diwen->getScaleX() / 2;
            pos.y -= diwen->getContentSize().height * diwen->getScaleY() / 2;

            int width = pos.x + layer->getContentSize().width / 2 + 12;
            int height = pos.y + layer->getContentSize().height / 2 + 4;
            layer->setPosition(ccp(width,height));
        }
    }

    bg->setPosition(ccp(bg->getContentSize().width/2,bg->getContentSize().height/2));
    return bg;
}
void ZhuangbeiXilianUI::clickShuoming(CCObject *obj)
{
	//弹框
	BaseSprite* dialog = BaseSprite::create("shangpin_goumai_tishikuang.png");
	dialog->setPosition(ccp(mWinSize.width/2, mWinSize.height/2));
	//确认 取消按键  
	CCMenu* menu = CCMenu::create();
	menu->setPosition(CCPointZero);
	{
		//返回
		CCMenuItemImage *fanhui = CCMenuItemImage::create(
			"shuxing_renwu_fanhui.png"
			, "shuxing_renwu_fanhui_select.png"
			, this, menu_selector(ZhuangbeiXilianUI::menuItemClicked_ShuoMingMenu));
		menu->addChild(fanhui, 1, 20);
		fanhui->setPosition(ccp(dialog->getContentSize().width/2,70));
	}
	//content
	{
		CCSize size = dialog->getContentSize();
		//title
		CCLabelTTF *titleLabel = CCLabelTTF::create(LFStrings::getValue("XilianTitle").c_str(), fontStr_kaiti, 20);
		titleLabel->setHorizontalAlignment(kCCTextAlignmentCenter);
		dialog->addChild(titleLabel);
		titleLabel->setAnchorPoint(ccp(0.5,1));
		titleLabel->setPosition(ccp(size.width/2, size.height-56));
		CCLabelTTF *shuoMingLabel = CCLabelTTF::create(LFStrings::getValue("XilianInfo").c_str(), fontStr_kaiti, 20 );
		
		shuoMingLabel->setHorizontalAlignment(kCCTextAlignmentRight);
		dialog->addChild(shuoMingLabel);
		shuoMingLabel->setColor(fonColor_PuTong);
		shuoMingLabel->setAnchorPoint(ccp(0.5,1));
		shuoMingLabel->setPosition(ccp(size.width/2, size.height-110));


		CCPoint pos = shuoMingLabel->getPosition();
		pos.x += shuoMingLabel->getContentSize().width / 2 - 45;
		pos.y += 5;

		int side_y = 20;
		for (int i = 0 ; i < 4 ; i ++)
		{
			BaseSprite *xingxingImg = BaseSprite::create(CCString::createWithFormat("gongming_anniu_%d.png",i + 1)->getCString());
			dialog->addChild(xingxingImg);

			CCPoint point;
			point.x = pos.x - xingxingImg->getContentSize().width / 2 * 0.38f;
			point.y = pos.y - i * side_y - xingxingImg->getContentSize().height / 2 * 0.38f;
			xingxingImg->setPosition(point);

			xingxingImg->setScale(0.38f);
		}
	}
	//
	{
		LFAlert* lfAlert = new LFAlert();
		lfAlert->setTag(Tag_Board_ShuoMing);
		lfAlert->setBaseContainer(dialog,menu);
		CCDirector::sharedDirector()->getRunningScene()->addChild(lfAlert,128, Tag_Board_ShuoMing);
		lfAlert->release();
	}
}
Beispiel #10
0
bool VVAlertView::initWithTitle(const char* aTitle, const char* aMessage, VVAlertViewDelegate* aDelegate, const char* aCancelBtnTitle, const char* aOtherBtnTitle)
{
    if ( !VVPopupLayer::init() )
		return false;
    
    delegate = aDelegate;
    
    overlayLayer->removeFromParentAndCleanup(true);
    
    CCLabelTTF *titleLabel = NULL;
    
    if( aTitle != NULL )
    {
        titleLabel = CCLabelTTF ::labelWithString(aTitle ,fontName.c_str(), titleFontSize);
    }
    
    CCScale9Sprite *bg = CCScale9Sprite::scale9SpriteWithFile(alertBG_name.c_str(), alert9patch_rect);
    
    
    CCLabelTTF *msgLabel = CCLabelTTF::labelWithString(aMessage, CCSizeMake(maxWidth-borderPadding*4, 0), CCTextAlignmentCenter, fontName.c_str(), messageFontSize);
    
    
    CCMenuItemSprite* btnCancel = CCMenuItemDynamic::dynamicItemWithTTFLabel(aCancelBtnTitle, fontName.c_str(), messageFontSize, btnSize, btnBG_name.c_str(), NULL, this,
                                                                             menu_selector(VVAlertView::onBtnCancel), 
                                                                             btn9patch_rect, 255);
    CCMenu *menu;
    if (aOtherBtnTitle == NULL) 
    {
        menu = CCMenu::menuWithItems(btnCancel, NULL);
    }
    else
    {
        CCMenuItemSprite* btnOk = CCMenuItemDynamic::dynamicItemWithTTFLabel(aOtherBtnTitle, fontName.c_str(), messageFontSize, btnSize, btnBG_name.c_str(), NULL, this,
                                                                                 menu_selector(VVAlertView::onBtnOk), 
                                                                                 btn9patch_rect, 255);

        menu = CCMenu::menuWithItems(btnCancel, btnOk, NULL);
        menu->alignItemsHorizontallyWithPadding(betweenBtnPadding);
    }
     
    
    menu->setTouchPriority(VVTouchPriorityMenuOnPopupLayer);
    
    addChild(bg);
    if (titleLabel) 
        addChild(titleLabel);            

    addChild(msgLabel);    
    addChild(menu);
    
    
    if (titleLabel)     
        totalHeight += titleLabel->getContentSize().height;    
    
    totalHeight += msgLabel->getContentSize().height;    
    totalHeight += btnCancel->getContentSize().height;
    totalHeight += centerPadding;
    
    totalHeight += messagePadding*2;
    totalHeight += borderPadding*2;
    
    float halfHeight = totalHeight/2;
    
    if (titleLabel) 
    {
        titleLabel  ->setPosition(ccp(0, halfHeight - borderPadding - titleLabel->getContentSize().height/2)); // -15 : top padding
        msgLabel    ->setPosition(ccp(0, halfHeight - borderPadding - titleLabel->getContentSize().height - messagePadding - msgLabel->getContentSize().height/2 ));
    }
    else
    {
        msgLabel    ->setPosition(ccp(0, halfHeight - borderPadding - msgLabel->getContentSize().height/2 ));
    }
    menu        ->setPosition(ccp(0, -halfHeight + borderPadding + btnCancel->getContentSize().height/2));
    
    bg->setContentSize(CCSizeMake(maxWidth, totalHeight));
    
    
    // will be used for placing text field in the middle
    centerOfMargin = (msgLabel->getPosition().y + menu->getPosition().y)/2;
    
    return true;
}
bool
MCRoleBaseInfo::init(MCRole *aRole)
{
    if (CCLayer::init()) {
        CCPoint anchorPoint = ccp(0, 1);
        CCPoint labelAnchorPoint = ccp(0, 0.05);
        CCSize labelSize;
        CCPoint labelPosition;
        CCLabelTTF *separatorLabel;
        float y;
        float contentScaleFactor = CC_CONTENT_SCALE_FACTOR();
        
        CCSize faceBoxSize = CCSizeMake(72 / contentScaleFactor,
                                        72 / contentScaleFactor);
        CCRect faceBoxSourceRect = CCRectMake(0, 0, 34, 34);
        CCRect faceBoxInseRect = CCRectMake(4, 4, 30, 30);
        
        faceBox_ = CCScale9Sprite::create(kMCRoleBaseInfoFaceBoxFilepath,
                                          faceBoxSourceRect,
                                          faceBoxInseRect);
        addChild(faceBox_);
        faceBox_->setContentSize(faceBoxSize);
        faceBox_->setAnchorPoint(anchorPoint);
        faceBox_->setPosition(ccp(0, 0));
        
        face_ = CCSprite::create(aRole->getFace()->getCString());
        addChild(face_);
        face_->setAnchorPoint(anchorPoint);
        face_->setScale(64 / contentScaleFactor / face_->getContentSize().height);
        face_->setPosition(ccp(4 / contentScaleFactor, -4 / contentScaleFactor));
        
        faceBoxSelected_ = CCScale9Sprite::create(kMCRoleBaseInfoFaceBoxSelectedFilepath,
                                                  faceBoxSourceRect,
                                                  faceBoxInseRect);
        addChild(faceBoxSelected_);
        faceBoxSelected_->setContentSize(faceBoxSize);
        faceBoxSelected_->setAnchorPoint(anchorPoint);
        faceBoxSelected_->setPosition(ccp(0, 0));
        faceBoxSelected_->setVisible(false);
        
        CCSprite *valueBox = CCSprite::create(kMCRoleBaseInfoValueBoxFilepath);
        addChild(valueBox);
        valueBox->setOpacity(196);
        valueBox->setAnchorPoint(anchorPoint);
        valueBox->setPosition(ccp(faceBox_->getPositionX() + faceBoxSize.width, 0));
        
        /* PP */
        CCString *ccstring = CCString::createWithFormat("%-03.0f", aRole->getPP());
        ppLabel_ = CCLabelTTF::create(ccstring->getCString(), "Marker Felt", kMCFontSize);
        addChild(ppLabel_);
        labelSize = ppLabel_->getContentSize();
        ppLabel_->setColor(ccc3(240, 240, 240));
        ppLabel_->setAnchorPoint(labelAnchorPoint);
        y = labelSize.height / 2 - faceBoxSelected_->getContentSize().height;
        ppLabel_->setPosition(ccp(96 / contentScaleFactor, y));
        ccstring->retain();
        
        separatorLabel = CCLabelTTF::create(" / ", "Marker Felt", kMCFontSize);
        addChild(separatorLabel);
        separatorLabel->setColor(ccc3(240, 240, 240));
        separatorLabel->setAnchorPoint(labelAnchorPoint);
        separatorLabel->setPosition(ccp(96 / contentScaleFactor + labelSize.width, y));
        
        labelPosition = separatorLabel->getPosition();
        ccstring = CCString::createWithFormat("%03.0f", aRole->getMaxPP());
        maxPPLabel_ = CCLabelTTF::create(ccstring->getCString(), "Marker Felt", kMCFontSize);
        addChild(maxPPLabel_);
        maxPPLabel_->setColor(ccc3(240, 240, 240));
        maxPPLabel_->setAnchorPoint(labelAnchorPoint);
        maxPPLabel_->setPosition(ccp(labelPosition.x + separatorLabel->getContentSize().width, y));
        ccstring->retain();
        
        /* HP */
        ccstring = CCString::createWithFormat("%-03hu", aRole->getHP());
        hpLabel_ = CCLabelTTF::create(ccstring->getCString(), "Marker Felt", kMCFontSize);
        addChild(hpLabel_);
        labelSize = hpLabel_->getContentSize();
        hpLabel_->setColor(ccc3(51, 153, 51));
        hpLabel_->setAnchorPoint(labelAnchorPoint);
        y += labelSize.height;
        hpLabel_->setPosition(ccp(96 / contentScaleFactor, y));
        ccstring->retain();
        
        separatorLabel = CCLabelTTF::create(" / ", "Marker Felt", kMCFontSize);
        addChild(separatorLabel);
        separatorLabel->setColor(ccc3(51, 153, 51));
        separatorLabel->setAnchorPoint(labelAnchorPoint);
        separatorLabel->setPosition(ccp(96 / contentScaleFactor + labelSize.width, y));
        
        labelPosition = separatorLabel->getPosition();
        ccstring = CCString::createWithFormat("%03hu", aRole->getMaxHP());
        maxHPLabel_ = CCLabelTTF::create(ccstring->getCString(), "Marker Felt", kMCFontSize);
        addChild(maxHPLabel_);
        maxHPLabel_->setColor(ccc3(51, 153, 51));
        maxHPLabel_->setAnchorPoint(labelAnchorPoint);
        maxHPLabel_->setPosition(ccp(labelPosition.x + separatorLabel->getContentSize().width, y));
        ccstring->retain();
        
        role_ = aRole;
        aRole->retain();
        
        width_ = faceBox_->getContentSize().width + valueBox->getContentSize().width;
        height_ = faceBox_->getContentSize().height;
        touched_ = false;
        
        return true;
    }
    
    return false;
}