Example #1
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);
}
Example #2
0
bool TipLayer::initTipLayer()
{
	CCSize winSize = CCDirector::sharedDirector()->getWinSize();
	CCLayerColor *maskLayer = CCLayerColor::node();
	maskLayer->initWithColorWidthHeight(ccc4f(0x00,0x00,0x00,0x80),335,350);
	//maskLayer->setOpacity(200);
	maskLayer->setAnchorPoint(ccp(0.5, 0.5));
	maskLayer->setPosition(ccp(winSize.width/2-maskLayer->getContentSize().width/2, winSize.height/2-maskLayer->getContentSize().height/2));
	this->addChild(maskLayer);
	/*CCSprite *bgSprite = CCSprite::spriteWithFile("actor_pause_bg.png");
	this->addChild(bgSprite);
	bgSprite->setPosition(ccp(winSize.width / 2, winSize.height / 2));*/

	
	std::string stdNameOne = "";
	std::string stdNameTwo = "";
	std::string contentImageName = "";
	stdNameOne = s_touchfile + s_language + "actor_btn_cancel.png";
	stdNameTwo = s_touchfile + s_language + "actor_btn_confirm.png";
	contentImageName = s_language + "actor_img_tipContent.png";
	//content
	CCSprite *pContentSprite = CCSprite::spriteWithFile(contentImageName.c_str());
	this->addChild(pContentSprite);
	pContentSprite->setPosition(ccp(winSize.width / 2, winSize.height / 2 +100));

	CCMenuItemImage *cancelItem = CCMenuItemImage::itemFromNormalImage(stdNameOne.c_str(), stdNameOne.c_str(), this, menu_selector(TipLayer::cancel));
	CCMenuItemImage *confirmItem = CCMenuItemImage::itemFromNormalImage(stdNameTwo.c_str(), stdNameTwo.c_str(), this, menu_selector(TipLayer::confirm));
	CCMenu *menu = CCMenu::menuWithItems(confirmItem,cancelItem,NULL);
	menu->alignItemsVertically();
	menu->setPosition(ccp(winSize.width / 2, winSize.height / 2 - 50));
	this->addChild(menu);

	CCLayer::setIsKeypadEnabled(true);
	return true;
}
Example #3
0
void HSLoadingLayer::Load()
{
	CCLayerColor* pMaskLayer = CCLayerColor::create(ccc4(0, 0, 0, 200),
                                                    HSBase::GetTemplateScreenW() + 10.f, HSBase::GetTemplateScreenH());
	pMaskLayer->setAnchorPoint(HS_ANCHOR_CENTER);
	this->addChild(pMaskLayer);
    pMaskLayer->setPosition(ccp(-2.f,0));
    HSToolBase::SetNodeFilldScreen(pMaskLayer);
    
	//	void *bigmem=malloc(1048576*5);
    /**
	CCSprite* pLoadingSprite = HSCCSprite::create("Image/LODADING.png");
	pLoadingSprite->setPosition(HSBase::GetTemplateScreenCentre());
	this->addChild(pLoadingSprite);*/
    
	/**
	CCSprite* pMaskSprite = HSCCSprite::create("Image/LODADINGzhezhao.png");
	pMaskSprite->setOpacity(255 - 153);
    
	m_pProgressTimeer = CCProgressTimer::create(pMaskSprite);
	m_pProgressTimeer->setType(kCCProgressTimerTypeBar);
	m_pProgressTimeer->setMidpoint(ccp(0,0));
	m_pProgressTimeer->setBarChangeRate(ccp(1, 0));
	m_pProgressTimeer->setPosition(pLoadingSprite->getPosition());
	this->addChild(m_pProgressTimeer);
	m_pProgressTimeer->setReverseProgress(true);
    */
	if (1)
    {

		m_pTipsTTFUp = CCLabelTTF::create("",HS_FONT_HuaKang, 38.f, CCSizeMake(500,960),
		                                        kCCTextAlignmentCenter, kCCVerticalTextAlignmentCenter);
		m_pTipsTTFUp->setPosition(ccp(320.f,800.f));

		this->addChild(m_pTipsTTFUp);

		CCString* pTipsStr = CCString::createWithFormat("tips_%d",
                                                        HSMath::Random(0, 19));

		m_pTipsTTF = CCLabelTTF::create(L(pTipsStr->getCString()),
                                        HS_FONT_HuaKang, 32.f, CCSizeMake(500,960),
                                        kCCTextAlignmentCenter, kCCVerticalTextAlignmentCenter);
		//m_pTipsTTF->setPosition(HSBase::GetTemplateScreenCentre());
		m_pTipsTTF->setPosition(
                                /*ccp(HSBase::GetTemplateScreenW() / 2.f,pLoadingSprite->getContentSize().height)*/ccp(320.f,180.f));
		this->addChild(m_pTipsTTF);

		//m_pTipsTTF->getString();
	}
    
//	m_backSprite = HSCCSprite::create("Image/lodingback.png");
//	m_backSprite->setPosition(ccp(320.f,340.f));
//	this->addChild(m_backSprite);
    m_pSpxLoading = SPX_Manager::CreateSprite("SPX/cat.sprite");
    m_pSpxLoading->setPosition(ccp(320.f,306.f));
    m_pSpxLoading->SetAction(0);
    this->addChild(m_pSpxLoading);
    
    this->setVisible(false);
}
ParkingViewScene::ParkingViewScene(EstacionamentoState _state, int _wayPointID)
{
    
    isChangeToRoute = false;
    plistTagMenuCurrent.clear();
    plistMenuCurrent.clear();

    setUpTopImage(Global::TOP_SRC_IMAGE_Estacionamentos);
    ChangeTitle(ESTACIOMENTOS);
    this->addButtonTop();
    //initFixedMenu();
    this->wayPointID = _wayPointID;
    this->state=_state;
    if( state == EST_SAIDA)
    {
        actualCategory = ESTACIOMENTOS;
        CCLayerColor *node = CCLayerColor::create(ccc4(0,0,0,0));
        node->setAnchorPoint(ccp(0,0));
        node->setPosition(ccp(0,0));
        this->addChild(node,0, 250);
 
        //Carrega informacoes do Estacionamento ( semelhante waypointID
        LoadParkingId();
    }
    else
    {
        //Isso e so exibido quando o usuario esta na entrada
       if( wayPointID == 51)
         //Exibe uma mensagem de alerta configurada para estacionamentos
         AlertViewScene::showMessageParking( this,menu_selector(ParkingViewScene::btnResponse),250);
       else
         //Exibe o mapa do Google Maps
         this->addChild(new LayerWebView(wayPointID));
    }
}
Example #5
0
// LayerIgnoreAnchorPointScale
void LayerIgnoreAnchorPointScale::onEnter()
{
    LayerTest::onEnter();
    
    CCSize s = CCDirector::sharedDirector()->getWinSize();

    CCLayerColor *l = CCLayerColor::create(ccc4(255, 0, 0, 255), 200, 200);

    l->setAnchorPoint(ccp(0.5f, 1.0f));
    l->setPosition(ccp( s.width/2, s.height/2));


    CCScaleBy *scale = CCScaleBy::create(2, 2);
    CCScaleBy* back = (CCScaleBy*)scale->reverse();
    CCSequence *seq = CCSequence::create(scale, back, NULL);

    l->runAction(CCRepeatForever::create(seq));

    this->addChild(l, 0, kLayerIgnoreAnchorPoint);

    CCSprite *child = CCSprite::create("Images/grossini.png");
    l->addChild(child);
    CCSize lsize = l->getContentSize();
    child->setPosition(ccp(lsize.width/2, lsize.height/2));

    CCMenuItemFont *item = CCMenuItemFont::create("Toogle ignore anchor point", this, menu_selector(LayerIgnoreAnchorPointScale::onToggle));

    CCMenu *menu = CCMenu::create(item, NULL);
    this->addChild(menu);

    menu->setPosition(ccp(s.width/2, s.height/2));
}
Example #6
0
bool
WSGameBackGroundLayer::initWithScene(WSGameScene *scene)
{
    if (CCLayer::init())
    {
        
        CCLayerColor* whiteBg = CCLayerColor::create(ccc4(255, 255, 255, 255), 500, 350);
        whiteBg->setAnchorPoint(ccp(0, 0));
        whiteBg->setPosition(ccp(320, 170));
        this->addChild(whiteBg);
        
        WSMap* map = scene->getGameCore()->getGameMap();
        
        for (int i=0; i<map->getHeight(); i++) {
            for (int j=0; j<map->getWidth(); j++) {
                if (map->getMapNodeByXY(j, i) == kEdge)
                {
                    CCSprite* sprite = CCSprite::create("edge.png");
                    sprite->setAnchorPoint(ccp(0, 0));
                    sprite->setPosition(ccp(320+ j*sprite->boundingBox().size.width, 170 + (map->getHeight()-i-1)*sprite->boundingBox().size.height));
                    this->addChild(sprite);
                }
            }
        }

        return true;
    }
    return false;
}
Example #7
0
void NewsScene::createListView()
{
//    CCSize size = CCSize(750, 400);
    CCSize size = CCDirector::sharedDirector()->getWinSize();
  
    CCLayerColor * fundo =  CCLayerColor::create(ccc4(255, 255, 255, 255), size.width, size.height);
    fundo->setAnchorPoint(ccp(0,0));
    fundo->setPosition(ccp(0, 0));
    this->addChild(fundo,10);
//    CCLayerColor * header =  CCLayerColor::create(ccc4(200, 200, 200, 255), size.width, 80);
//    header->setAnchorPoint(ccp(0,0));
//    header->setPosition(ccp(0, size.height -80));
//    fundo->addChild(header);
    
    CCSprite *sprHeader;
    sprHeader = CCSprite::create("Header_Blue.png");
    
    sprHeader->setAnchorPoint(ccp(0,0));
    sprHeader->setScale(1);
    sprHeader->setPosition(ccp(0, size.height -90));
    this->addChild(sprHeader,100);
    CCSprite *sprTitle;
    sprTitle = CCSprite::create("tit_informacoes.png");
    
    sprTitle->setAnchorPoint(ccp(0,0));
    sprTitle->setScale(1);
    sprTitle->setPosition(ccp(110, size.height -50));
    this->addChild(sprTitle,101);
    
    CCMenu* menu = CCMenu::create();
    
    CCSprite *spriteDefault = CCSprite::create("Seta1.png");
    CCSprite *spriteSelected = CCSprite::create("Seta2.png");
    CCMenuItemSprite *item = CCMenuItemSprite::create(spriteDefault, spriteSelected, this,  menu_selector(NewsScene::btnBack));
    item->setAnchorPoint(ccp(0, 0));
    item->setPosition(ccp(0, size.height -90));
    menu->addChild(item, 0, 100);
    menu->setPosition(ccp(10,30));
    menu->setAnchorPoint(ccp(0,0));
    this->addChild(menu,102);
    
    list = CCListView::create(CCListViewModeVertical);
    list = cocos2d::extension::CCListView::create(CCListViewModeVertical);
    list->setDelegate(this);
    list->setContentSize(CCSize(size.width, size.height-70));
    list->setAnchorPoint(ccp(0,0));
    list->setPosition(ccp(0, 0));
    list->setColor(ccc3(50, 50, 50));
    list->setSeparatorStyle(CCListViewCellSeparatorStyleNone);
    
    fundo->addChild(list);
    this->loading = new AnimatedSprite("loader_einstein1.png");
	this->loading->addAnimation(AnimatedSprite::animationWithFile("loader_einstein", 24, 0.030f), "anim");//frame_count
    
    this->addChild(this->loading,999);
    this->loading->runAnimation("anim",true, true);
	this->loading->setAnchorPoint(ccp(0.5f, 0.5f));
	this->loading->setPosition(ccp(CCDirector::sharedDirector()->getWinSize().width/2, CCDirector::sharedDirector()->getWinSize().height/2 - 30));
    this->loading->setVisible(true);
}
Example #8
0
//切换游戏地图之前
void GameScene::switchMap()
{
	//创建一个遮罩层,用于地图切换时的显示淡入淡出效果
	CCLayerColor* fadeLayer = CCLayerColor::layerWithColor(ccc4(0, 0, 0, 0));
	fadeLayer->setAnchorPoint(CCPointZero);
	fadeLayer->setPosition(CCPointZero);
	addChild(fadeLayer, kFadeLayer, kFadeLayer);
	//执行淡入动画,结束后调用resetGameLayer方法
	CCAction* action = CCSequence::actions(
		CCFadeIn::actionWithDuration(0.5f),
		CCCallFunc::actionWithTarget(this, callfunc_selector(GameScene::resetGameLayer)),
		NULL);
	fadeLayer->runAction(action);
}
Example #9
0
void ShowTip::show(const char *str, cocos2d::CCPoint& point, float fontSize, float delayTime, bool displayBg)
{
    CCLabelTTF* ttfTip = CCLabelTTF::create(str, "宋体", fontSize);
    ttfTip->cocos2d::CCNode::setAnchorPoint(CCPoint(0, 0));
    
    CCSize size = ttfTip->getContentSize();
    CCLayerColor* bgColor = NULL;
    if (displayBg)
    {
        bgColor = CCLayerColor::create();
        bgColor->setColor(ccColor3B(ccc3(0, 0, 0)));
        bgColor->setAnchorPoint(CCPoint(0.5,0.5));
        bgColor->setPosition(CCPoint(point.x - size.width * 0.5, point.y - 40));
        bgColor->setContentSize(size);
        bgColor->addChild(ttfTip);
        this->addChild(bgColor);
        
        ttfTip->setFontFillColor(ccColor3B(ccc3(255, 255, 255)));
    }
    else
    {
        size = CCSize(0,0);
        ttfTip->setFontFillColor(ccColor3B(ccc3(0, 0, 0)));
        ttfTip->setPosition(CCPoint(point.x, point.y - 60));
        this->addChild(ttfTip);
    }
    
    
    CCAction*  moveTo  = CCMoveTo::create(delayTime, CCPoint(point.x - size.width * 0.5, point.y + 40));
    
    if ( displayBg && bgColor )
    {
        CCFadeIn* fadeIn  = CCFadeIn::create(delayTime * 0.25);
        CCScaleTo* scaleTo = CCScaleTo::create(delayTime * 0.5, 1);
        CCFadeOut* fadeOut = CCFadeOut::create(delayTime * 0.25);
        bgColor->runAction(CCSequence::create(fadeIn,scaleTo, fadeOut, NULL));
        bgColor->runAction(moveTo);
    }
    else
    {
        CCFadeIn* fadeIn  = CCFadeIn::create(delayTime * 0.5);
        CCFadeOut* fadeOut = CCFadeOut::create(delayTime * 0.5);
        ttfTip->runAction(CCSequence::create(fadeIn, fadeOut, NULL));
        ttfTip->runAction(moveTo);
    }
    
    scheduleOnce(schedule_selector(ShowTip::removeFromParent), delayTime);
}
Example #10
0
int Bitmap::handler_method_fill( int ptr1, void* ptr2 )
{
	FillRectStruct* ptr2str = (FillRectStruct*)ptr2;
	Bitmap* bitmap =(Bitmap*)ptr1;
	
	if (NULL!=bitmap->p->m_emuBitmap)
	{
		Vec4 color = ptr2str->color;
		CCLayerColor* layerColor = CCLayerColor::create(ccc4(color.x*255,color.y*255,color.z*255,color.w*255));
		layerColor->setContentSize(CCSizeMake(ptr2str->rect.w,ptr2str->rect.h));
		layerColor->setAnchorPoint(ccp(0,1));
		layerColor->ignoreAnchorPointForPosition(false);
		layerColor->setPosition(ccp(ptr2str->rect.x,rgss_y_to_cocos_y(ptr2str->rect.y,bitmap->p->m_height)));
		bitmap->p->m_emuBitmap->addChild(layerColor);
	}

	delete ptr2str;
	return 0;
}
Example #11
0
// on "init" you need to initialize your instance
bool Bug914Layer::init()
{
    // always call "super" init
    // Apple recommends to re-assign "self" with the "super" return value
    if (BugsTestBaseLayer::init())
    {
        setTouchEnabled(true);
        // ask director the the window size
        CCSize size = CCDirector::sharedDirector()->getWinSize();
        CCLayerColor *layer;
        for( int i=0;i < 5;i++)
        {
            layer = CCLayerColor::create(ccc4(i*20, i*20, i*20,255));
            layer->setContentSize(CCSizeMake(i*100, i*100));
            layer->setPosition(ccp(size.width/2, size.height/2));
            layer->setAnchorPoint(ccp(0.5f, 0.5f));
            layer->setIsRelativeAnchorPoint(true);
            addChild(layer, -1-i);
        }

        // create and initialize a Label
        CCLabelTTF *label = CCLabelTTF::create("Hello World", "Marker Felt", 64);
        CCMenuItem *item1 = CCMenuItemFont::create("restart", this, menu_selector(Bug914Layer::restart));

        CCMenu *menu = CCMenu::create(item1, NULL);
        menu->alignItemsVertically();
        menu->setPosition(ccp(size.width/2, 100));
        addChild(menu);

        // position the label on the center of the screen
        label->setPosition(ccp( size.width /2 , size.height/2 ));

        // add the label as a child to this Layer
        addChild(label);
        return true;
    }
    return false;
}
Example #12
0
//virtual 
void GameItemView::initView()
{
	int cardW = 200;
	int cardH = 200;
	setContentSize( CCSizeMake( cardW, cardH ));
	setAnchorPoint(ccp(0.5f,0.5f));

	CCLayerColor* bg = CCLayerColor::create(ccc4(25,25,25,155), cardW,cardH);
	bg->setAnchorPoint(ccp(0,0));
	addChild(bg, 1);

	m_lblName = CCLabelTTF::create();
	m_lblName->initWithString( "", "Arial", 24.0f  );
	m_lblName->setAnchorPoint(ccp(0.0f, 1.0f ) );
	m_lblName->setPositionY(cardH);
	addChild(m_lblName, 50);

	m_lblType = CCLabelTTF::create();
	m_lblType->initWithString( "", "Arial", 24.0f  );
	m_lblType->setAnchorPoint(ccp(0.0f, 1.0f ) );
	m_lblType->setPositionY(cardH - 50);
	addChild(m_lblType, 50);

}
Example #13
0
void GameScene::gameOver()
{
	CCRingSprite* pRing;
	for(std::list<int>::iterator itr = CCRingSprite::s_tags.begin(); itr != CCRingSprite::s_tags.end() ; itr++){
		pRing = (CCRingSprite*)this->getChildByTag(*itr);
		pRing->unscheduleUpdate();
	}

	getChildByTag(kTagBackground)->unscheduleUpdate();

	m_pBattery->stopUserInput();

	CCTintTo* toWhite = CCTintTo::create(2.0f,255,255,255);
	m_pScoreLabel->runAction(toWhite);

	CCLayerColor* gameOverLayer = CCLayerColor::create(ccc4(0,0,0,128),m_winSize.width,m_winSize.height);
	gameOverLayer->setAnchorPoint(CCPointZero);
	gameOverLayer->setPosition(ccp(0,m_winSize.height));
	gameOverLayer->setOpacity(0);
	CCActionInterval* fade = CCFadeIn::create(1.0f);
	CCMoveTo* move = CCMoveTo::create(0.4f,CCPointZero);
	gameOverLayer->runAction(CCEaseSineIn::create(CCSpawn::createWithTwoActions(fade,move)));
	this->addChild(gameOverLayer,kZOrderGameOverLayer,kTagGameOverLayer);

	CCDelayTime* delay = CCDelayTime::create(0.3f);
	CCCallFunc* ad = CCCallFunc::create(this, callfunc_selector( GameScene::callAd) );
	this->runAction(CCSequence::createWithTwoActions(delay,ad));

	saveScore();

	showRetryButtons();

	SimpleAudioEngine::sharedEngine()->playBackgroundMusic("sounds/GameOver.mp3",false);

	m_gameState = kStateGameOver;
}
Example #14
0
//------------------------------------------------------------------
//
// LabelTTFTest
//
//------------------------------------------------------------------
LabelTTFTest::LabelTTFTest()
{
    CCSize blockSize = CCSizeMake(200, 160);
    CCSize s = CCDirector::sharedDirector()->getWinSize();

    CCLayerColor *colorLayer = CCLayerColor::create(ccc4(100, 100, 100, 255), blockSize.width, blockSize.height);
    colorLayer->setAnchorPoint(ccp(0,0));
    colorLayer->setPosition(ccp((s.width - blockSize.width) / 2, (s.height - blockSize.height) / 2));

    this->addChild(colorLayer);

    CCMenuItemFont::setFontSize(30);
    CCMenu *menu = CCMenu::create(
        CCMenuItemFont::create("Left", this, menu_selector(LabelTTFTest::setAlignmentLeft)),
        CCMenuItemFont::create("Center", this, menu_selector(LabelTTFTest::setAlignmentCenter)),
        CCMenuItemFont::create("Right", this, menu_selector(LabelTTFTest::setAlignmentRight)),
        NULL);
    menu->alignItemsVerticallyWithPadding(4);
    menu->setPosition(ccp(50, s.height / 2 - 20));
    this->addChild(menu);

    menu = CCMenu::create(
        CCMenuItemFont::create("Top", this, menu_selector(LabelTTFTest::setAlignmentTop)),
        CCMenuItemFont::create("Middle", this, menu_selector(LabelTTFTest::setAlignmentMiddle)),
        CCMenuItemFont::create("Bottom", this, menu_selector(LabelTTFTest::setAlignmentBottom)),
        NULL);
    menu->alignItemsVerticallyWithPadding(4);
    menu->setPosition(ccp(s.width - 50, s.height / 2 - 20));
    this->addChild(menu);

    m_plabel = NULL;
    m_eHorizAlign = kCCTextAlignmentLeft;
    m_eVertAlign = kCCVerticalTextAlignmentTop;

    this->updateAlignment();
}
Example #15
0
void SGCGMovieLayer::constructView()
{
    SGNotificationCenter::sharedNotificationCenter()->addObserver(MSG_CGBATTLE_START, this, callfuncO_selector(SGCGMovieLayer::cgBattleListener));
       s = CCDirector::sharedDirector()->getWinSize();
    
    ResourceManager::sharedInstance()->bindTexture("bg/cgBg.plist", RES_TYPE_LAYER_UI, sg_cgMovieLayer);

    CCSprite *cgBg = CCSprite::createWithSpriteFrameName("cgBg.png");
    cgBg->setAnchorPoint(ccp(0.5, 1));
    cgBg->ignoreAnchorPointForPosition(false);
    cgBg->cocos2d::CCNode::setScaleX(s.width/cgBg->getContentSize().width);
    cgBg->setPosition(ccp(s.width/2, s.height));
    addChild(cgBg);
    
//    SGButton *skipBt = SGButton::createFromLocal("box_btnbg.png", "跳 过", this, menu_selector(SGCGMovieLayer::cgSkipToBattle), CCPointZero, FONT_PANGWA,ccWHITE,32,false,true);
//    skipBt->setPosition(ccp(s.width/2, skipBt->getContentSize().height*2));
//    addBtn(skipBt);
    
    CCLayerColor * blackBg = CCLayerColor::create(ccc4(0, 0, 0, 255), s.width, s.height);
    blackBg->setTouchEnabled(false);
    blackBg->ignoreAnchorPointForPosition(false);
    blackBg->setAnchorPoint(ccp(0, 0));
    blackBg->setPosition(ccp(0, 0));
    this->addChild(blackBg, -100);
    
    scrollRect = CCRectMake(0, s.height*0.2, s.width, s.height/4);
    cgScrollView = SNSScrollView::create(scrollRect);
    cgScrollView->setFrame(scrollRect);
    cgScrollView->setPosition(scrollRect.origin);
    cgScrollView->setHorizontal(false);
    cgScrollView->setVertical(true);
    cgScrollView->setTouchEnabled(false);
    this->addChild(cgScrollView);
    
//    CCSprite *scrollBg = CCSprite::createWithSpriteFrameName("barrack_kuang.png");
//    scrollBg->cocos2d::CCNode::setScale(s.width/scrollBg->getContentSize().width, s.height/4/scrollBg->getContentSize().height);
//    scrollBg->setPosition(ccpAdd(scrollRect.origin, ccp(s.width/2, s.height/8)));
//    addChild(scrollBg);
    
    char *spritData = new char[(int)s.width * (int)s.height *4];
    memset(spritData,0,(int)s.width * (int)s.height *4);
    int spriteDataSize = (int)s.width * (int)s.height*4;
    for (int j=0; j<spriteDataSize; j+=4) {
        spritData[j] = 0;
        spritData[j+1] = 0;
        spritData[j+2] = 0;
        spritData[j+3] = 255;
    }
    
    CCTexture2D *pTexture = new CCTexture2D();
    pTexture->initWithData(spritData, kCCTexture2DPixelFormat_Default, (int)s.width, (int)s.height, s);
    
    finaleSprite = CCSprite::createWithTexture(pTexture);
    finaleSprite->setPosition(CCPointZero);
    finaleSprite->setAnchorPoint(CCPointZero);
    this->addChild(finaleSprite,10,10);
    finaleSprite->setVisible(false);
    finaleSprite->setOpacity(0);
    
    delete [] spritData;
    pTexture->autorelease();
    
    
    this->setTouchEnabled(true);
    
    const char *str[7] = { str_CGMovieLayer_str1,
                         str_CGMovieLayer_str2,
                        str_CGMovieLayer_str3,
                         str_CGMovieLayer_str4,
                        str_CGMovieLayer_str5,
                          str_CGMovieLayer_str6,
                         str_CGMovieLayer_str7};
    
    SGCCLabelTTF *cgMsg = NULL;
    posY =  -20;
    for (int i=0; i<7; i++) {
        cgMsg =  SGCCLabelTTF::create(str[i], FONT_BOXINFO, 34);
        cgMsg->cocos2d::CCNode::setPosition(s.width/2, posY);
        cgScrollView->m_body->addChild(cgMsg);
        posY -= 50;
    }
    moveCgMsgDis = CGMSGMOVEDIS;
    unschedule(schedule_selector(SGCGMovieLayer::moveCgMsgUp));
    if (SGPlayerInfo::sharePlayerInfo()->getCDKeyNeed()==1) {
        
        SGNotificationCenter::sharedNotificationCenter()->addObserver(MSG_CDK, this, callfuncO_selector(SGCGMovieLayer::cdkListener));
        
        ResourceManager::sharedInstance()->bindTexture("sgloginingbox/sgloginingbox.plist", RES_TYPE_LAYER_UI, sg_cgMovieLayer);
//         ResourceManager::sharedInstance()->bindTexture("sgserverlistlayer/sgserverlistlayer.plist",RES_TYPE_LAYER_UI ,sg_registerLayer);
        
        
        box = CCSprite::createWithSpriteFrameName("register_diban.png");
        box->setPosition(SGLayout::getPoint(kMiddleCenter));
        this->addChild(box);

        m_cdk = CCEditBox::create(CCSizeMake(500, 60), CCScale9Sprite::createWithSpriteFrameName("public_kuang_input.png"));
        m_cdk->setPlaceHolder(str_CGMovieLayer_str8);
        m_cdk->setPlaceholderFontColor(ccc3(0x82,0x3e,0x02));
        m_cdk->setMaxLength(10);
        m_cdk->setReturnType(kKeyboardReturnTypeDone);
        m_cdk->setInputMode(kEditBoxInputModeSingleLine);
        m_cdk->setPosition(ccp(box->getContentSize().width*.5,box->getContentSize().height*.48));
//        m_cdk->setDelegate(this);
        box->addChild(m_cdk);
   
        
        
        title = CCSprite::createWithSpriteFrameName("gameactive.png");
        title->setPosition(ccp(box->getContentSize().width*.5,box->getContentSize().height*.8));
        box->addChild(title);
        //确定
        btn = SGButton::create("box_btnbg.png", "public_font_queding.png", this, menu_selector(SGCGMovieLayer::btnclick),CCPointZero,false,true);
        this->addBtn(btn);
        btn->setPosition(ccpAdd(box->getPosition(),ccp(-140,-btn->getContentSize().height*2.5)));
        //取消
        btn2 = SGButton::create("box_btnbg.png", "public_font_quxiao.png", this, menu_selector(SGCGMovieLayer::btnclickcancel),CCPointZero,false,true);
        this->addBtn(btn2);
        btn2->setPosition(ccpAdd(box->getPosition(),ccp(140,-btn->getContentSize().height*2.5)));

        
    }
    else
    {
    schedule(schedule_selector(SGCGMovieLayer::moveCgMsgUp), CGMSGMOVEGAP);
    }
}
void AlertViewScene::showMessageParking(CCNode* parent, SEL_MenuHandler callbackFunction  ,int wayPoint)
{
    int basePosition = 50;
    
    float heigth = CCDirector::sharedDirector()->getWinSize().height;
    if (heigth >480) {
        basePosition = 100;//4inch
    }
    
    if( AlertViewScene::isActive ==  true)
        return;
    
    AlertViewScene::isActive = true;
    //Layer - Container with all elements of Alert
    CCLayerColor *node = CCLayerColor::create(ccc4(0,0,0,255));
    node->setContentSize(CCDirector::sharedDirector()->getWinSize());
    node->setOpacity(200);
    node->setAnchorPoint(ccp(0,0));
    node->setPosition(ccp(0,0));

    
    //Fundo do Popup
    CCSprite *sprBackground = CCSprite::create("popup.png");
    sprBackground->setAnchorPoint(ccp(0,0));
    sprBackground->setScale(1);
    sprBackground->setPosition(ccp( 25,basePosition+100));
    node->addChild(sprBackground);

    //Close Button of frame
    CCSprite *btnClose = CCSprite::create("fechar_btn.png");
    CCSprite *btnClosePress = CCSprite::create("fechar_press.png");

    CCSprite *Icone = CCSprite::create("icone_estacionamento.png");
    Icone->setPosition(ccp(45,basePosition+225));
    node->addChild(Icone);
    
    CCMenuItemSprite *itembtnClose = CCMenuItemSprite::create(btnClose, btnClosePress, node, callbackFunction);
	itembtnClose->setAnchorPoint(ccp(0, 0));
	itembtnClose->setPosition(ccp(280,basePosition+303));
    
    //Button Rota para o local
    CCSprite *btnSelect = CCSprite::create("ok_btn.png");
    CCSprite *btnUnselect = CCSprite::create("ok_press.png");
    
    CCMenuItemSprite *itembtnRota = CCMenuItemSprite::create( btnSelect,btnUnselect, node,callbackFunction);
	itembtnRota->setAnchorPoint(ccp(0, 0));
	itembtnRota->setPosition(ccp(115,basePosition+150));
    //Button Rota para o local
    CCMenu* options = CCMenu::create();
    options->addChild(itembtnClose,0,44);
    options->addChild(itembtnRota,0,wayPoint);
    options->setPosition(ccp(0, -20));
    node->addChild(options,3,Global::TAG_Child_Layer);
    
    //Title of Alert
    CCLabelTTF *labelTitle;
    labelTitle = CCLabelTTF::create("Alerta", "LucidaGrandeBold", 16);
    labelTitle->setPosition(ccp(35, basePosition+260));
    labelTitle->setAnchorPoint(ccp(0,0));
    labelTitle->setColor(ccc3(55, 55, 55));
    node->addChild(labelTitle);
    
    
    //sub-Title of Alert
    CCLabelTTF *labelSubTitle;
    labelSubTitle = CCLabelTTF::create("Atenção", "LucidaGrandeBold", 11);
    labelSubTitle->setPosition(ccp(60, basePosition+225));
    labelSubTitle->setAnchorPoint(ccp(0,0));
    labelSubTitle->setColor(ccc3(55, 55, 55));
    node->addChild(labelSubTitle);

    //Description of Alert
    CCLabelTTF *labelDescription;
    labelDescription = CCLabelTTF::create("       Ao entrar por este bloco você só poderá retirar", "Lucida Grande", 10);
    labelDescription->setPosition(ccp(40, basePosition+210));
    labelDescription->setAnchorPoint(ccp(0,0));
    labelDescription->setColor(ccc3(55, 55, 55));
    node->addChild(labelDescription);
    
    //Description of Alert
    CCLabelTTF *labelDescription2;
    labelDescription2 = CCLabelTTF::create("seu veículo neste mesmo bloco.", "Lucida Grande", 10);
    labelDescription2->setPosition(ccp(35, basePosition+200));
    labelDescription2->setAnchorPoint(ccp(0,0));
    labelDescription2->setColor(ccc3(55, 55, 55));
    node->addChild(labelDescription2);


    parent->addChild(node,10,Global::TAG_Alert_Layer);
}
void showMessageSearch(CCNode* sender, SEL_MenuHandler callbackFunction)
{
    if( AlertViewScene::isActive ==  true)
        return;
    
    AlertViewScene::isActive = true;
    //Layer - Container with all elements of Alert
    CCLayerColor *node = CCLayerColor::create(ccc4(0,0,0,255));
    node->setContentSize(CCDirector::sharedDirector()->getWinSize());
    node->setOpacity(200);
    node->setAnchorPoint(ccp(0,0));
    node->setPosition(ccp(0,0));
    
    
    //Fundo do Popup
    CCSprite *sprBackground = CCSprite::create("popup.png");
    sprBackground->setAnchorPoint(ccp(0,0));
    sprBackground->setScale(1);
    sprBackground->setPosition(ccp(25,100));
    node->addChild(sprBackground);
    
    //Close Button of frame
//    CCSprite *btnClose = CCSprite::create("fechar_btn.png");
//    CCSprite *btnClosePress = CCSprite::create("fechar_press.png");
    
//    CCSprite *Icone = CCSprite::create("icone_estacionamento.png");
//    Icone->setPosition(ccp(45,225));
//    node->addChild(Icone);
    
//    CCMenuItemSprite *itembtnClose = CCMenuItemSprite::create(btnClose, btnClosePress, node, callbackFunction);
//	itembtnClose->setAnchorPoint(ccp(0, 0));
//	itembtnClose->setPosition(ccp(280,303));
    
    //Button Rota para o local
//    CCSprite *btnSelect = CCSprite::create("ok_btn.png");
//    CCSprite *btnUnselect = CCSprite::create("ok_press.png");
    
//    CCMenuItemSprite *itembtnRota = CCMenuItemSprite::create( btnSelect,btnUnselect, node,callbackFunction);
//	itembtnRota->setAnchorPoint(ccp(0, 0));
//	itembtnRota->setPosition(ccp(115,150));
//    //Button Rota para o local
//    CCMenu* options = CCMenu::create();
//    options->addChild(itembtnClose,0,44);
//    options->addChild(itembtnRota,0,wayPoint);
//    options->setPosition(ccp(0, -20));
//    node->addChild(options,3,Global::TAG_Child_Layer);
    
    //Title of Alert
    CCLabelTTF *labelTitle;
    labelTitle = CCLabelTTF::create("Alerta", "LucidaGrandeBold", 16);
    labelTitle->setPosition(ccp(35, 260));
    labelTitle->setAnchorPoint(ccp(0,0));
    labelTitle->setColor(ccc3(55, 55, 55));
    node->addChild(labelTitle);
    
    
    //sub-Title of Alert
    CCLabelTTF *labelSubTitle;
    labelSubTitle = CCLabelTTF::create("Atenção", "LucidaGrandeBold", 11);
    labelSubTitle->setPosition(ccp(60, 225));
    labelSubTitle->setAnchorPoint(ccp(0,0));
    labelSubTitle->setColor(ccc3(55, 55, 55));
    node->addChild(labelSubTitle);
    
    //Description of Alert
    CCLabelTTF *labelDescription;
    labelDescription = CCLabelTTF::create("       Sua busca retornou muitos resultados.", "Lucida Grande", 10);
    labelDescription->setPosition(ccp(40, 210));
    labelDescription->setAnchorPoint(ccp(0,0));
    labelDescription->setColor(ccc3(55, 55, 55));
    node->addChild(labelDescription);
    
    //Description of Alert
//    CCLabelTTF *labelDescription2;
//    labelDescription2 = CCLabelTTF::create(".", "Lucida Grande", 10);
//    labelDescription2->setPosition(ccp(35, 200));
//    labelDescription2->setAnchorPoint(ccp(0,0));
//    labelDescription2->setColor(ccc3(55, 55, 55));
//    node->addChild(labelDescription2);
    
    
    sender->addChild(node,10,Global::TAG_Alert_Layer);
}
void AlertViewScene::showMessageParkingOption(CCNode* sender, SEL_MenuHandler entering,SEL_MenuHandler outing,SEL_MenuHandler quiting)
{
    
    if( AlertViewScene::isActive ==  true)
        return;
    AlertViewScene::isActive = true;
    
    CCSprite *sprBackground = CCSprite::create("bg_parking_4inch.png");
    sprBackground->setAnchorPoint(ccp(0,0));
    //sprBackground->setScale(1);
    sprBackground->setPosition(ccp(0,0));
    
    
    //Backgroud Alert
    CCSprite *sprBackground2 = CCSprite::create("popup.png");
    sprBackground2->setAnchorPoint(ccp(0,0));
    //sprBackground2->setScale(1);
    sprBackground2->setPosition(ccp(25,200));
    
    //Layer - Container with all elements of Alert
    CCLayerColor *node = CCLayerColor::create(ccc4(0,0,0,200));
  //  node->setContentSize(CCDirector::sharedDirector()->getWinSize());
    //node->addChild(sprBackground,1);
    node->addChild(sprBackground2,22);
    //node->setOpacity(200);
    node->setAnchorPoint(ccp(0,0));
    node->setPosition(ccp(0,0));

    //Close Button of frame
    CCSprite *btnClose = CCSprite::create("fechar_btn.png");
    CCSprite *btnClosePress = CCSprite::create("fechar_press.png");
    
    CCSprite *Icone = CCSprite::create("icon_car.png");
    Icone->setPosition(ccp(45,325));
    node->addChild(Icone,23);
    
    CCMenuItemSprite *itembtnClose = CCMenuItemSprite::create(btnClose, btnClosePress, node, quiting);
	itembtnClose->setAnchorPoint(ccp(0, 0));
	itembtnClose->setPosition(ccp(280,380));
    
    
    
    //Button Rota para o local
    CCSprite *imgEntering = CCSprite::create("button_entering.png");
    CCSprite *imgEnteringPress = CCSprite::create("button_entering_press.png");
    
    
    CCMenuItemSprite *btnEntering = CCMenuItemSprite::create( imgEnteringPress,imgEntering, node,entering);
	btnEntering->setAnchorPoint(ccp(0, 0));
	btnEntering->setPosition(ccp(70,250));
    
    CCSprite *imgOuting = CCSprite::create("button_outing.png");
    CCSprite *imgOutingPress = CCSprite::create("button_outing_press.png");
    
    CCMenuItemSprite *btnOuting = CCMenuItemSprite::create( imgOutingPress,imgOuting, node,outing);
	btnOuting->setAnchorPoint(ccp(0, 0));
	btnOuting->setPosition(ccp(170,250));

    
    CCMenu* options = CCMenu::create();
    options->addChild(itembtnClose,0,44);
    options->addChild(btnEntering,15,84);
    options->addChild(btnOuting,16,84);
    options->setPosition(ccp(0, 0));
    node->addChild(options,24,Global::TAG_Child_Layer);
    
    
    //Title of Alert
    CCLabelTTF *labelTitle;
    labelTitle = CCLabelTTF::create("Você está:", "LucidaGrandeBold", 16);
    labelTitle->setPosition(ccp(35, 360));
    labelTitle->setAnchorPoint(ccp(0,0));
    labelTitle->setColor(ccc3(55, 55, 55));
    node->addChild(labelTitle,25);
    
    
    
    //Description of Alert
    CCLabelTTF *labelDescription;
    labelDescription = CCLabelTTF::create("       Você está saindo ou entrando?", "Lucida Grande", 12);
    labelDescription->setPosition(ccp(40, 320));
    labelDescription->setAnchorPoint(ccp(0,0));
    labelDescription->setColor(ccc3(55, 55, 55));
    node->addChild(labelDescription,26);
//
// 
//
//    
//   // ((CCLayerColor*)sender)->setOpacity(30);
//    CCDirector::sharedDirector()->getRunningScene()->addChild(node,10,Global::TAG_Alert_Layer);


        sender->addChild(node, 30, Global::TAG_Alert_Layer);
    
  
}
void AlertViewScene::showMessageRota(CCNode* sender, SEL_MenuHandler callbackFunction ,int wayPoint)
{
    if( AlertViewScene::isActive ==  true)
        return;
    AlertViewScene::isActive = true;

    //Backgroud Alert
    CCSprite *sprBackground = CCSprite::create("popup.png");
    sprBackground->setAnchorPoint(ccp(0,0));
    sprBackground->setScale(1);
    sprBackground->setPosition(ccp(25,100));
    
    //Layer - Container with all elements of Alert
    CCLayerColor *node = CCLayerColor::create(ccc4(0,0,0,255));
    node->setContentSize(CCDirector::sharedDirector()->getWinSize());
    node->addChild(sprBackground);
    node->setOpacity(200);
    node->setAnchorPoint(ccp(0,0));
    node->setPosition(ccp(0,0));

    //Close Button of frame
    CCSprite *btnClose = CCSprite::create("fechar_btn.png");
    CCSprite *btnClosePress = CCSprite::create("fechar_press.png");

    CCSprite *Icone = CCSprite::create("icone_horario.png");
    Icone->setPosition(ccp(45,225));
    node->addChild(Icone);
    
    CCMenuItemSprite *itembtnClose = CCMenuItemSprite::create(btnClose, btnClosePress, node, menu_selector(AlertViewScene::btnCloseAlert));
	itembtnClose->setAnchorPoint(ccp(0, 0));
	itembtnClose->setPosition(ccp(280,303));
    
    //Button Rota para o local
    CCSprite *btnSelect = CCSprite::create("Rota_btn.png");
    CCSprite *btnUnselect = CCSprite::create("Rota_press.png");
    
    CCMenuItemSprite *itembtnRota = CCMenuItemSprite::create( btnSelect,btnUnselect, node,callbackFunction);
	itembtnRota->setAnchorPoint(ccp(0, 0));
	itembtnRota->setPosition(ccp(80,150));
    //Button Rota para o local
    CCMenu* options = CCMenu::create();
    options->addChild(itembtnClose,0,44);
    options->addChild(itembtnRota,0,wayPoint);
    options->setPosition(ccp(0, -20));
    node->addChild(options,3,Global::TAG_Child_Layer);

    //Title of Alert
    CCLabelTTF *labelTitle;
    labelTitle = CCLabelTTF::create(IFixedMenu::LoadWayPointName(wayPoint), "LucidaGrandeBold", 16);
    labelTitle->setPosition(ccp(35, 260));
    labelTitle->setAnchorPoint(ccp(0,0));
    labelTitle->setColor(ccc3(55, 55, 55));
    node->addChild(labelTitle);
    
    CCLabelTTF *labelSubTitle;
    labelSubTitle = CCLabelTTF::create("Horário de funcionamento", "LucidaGrandeBold", 11);
    labelSubTitle->setPosition(ccp(60, 225));
    labelSubTitle->setAnchorPoint(ccp(0,0));
    labelSubTitle->setColor(ccc3(55, 55, 55));
    node->addChild(labelSubTitle);
    
    //Description of Alert
    CCLabelTTF *labelDescription;
    labelDescription = CCLabelTTF::create("Estamos abertos todos os dias das 9h as 24h*", "Lucida Grande", 10);
    labelDescription->setPosition(ccp(60, 210));
    labelDescription->setAnchorPoint(ccp(0,0));
    labelDescription->setColor(ccc3(55, 55, 55));
    node->addChild(labelDescription);
    
    ((CCLayerColor*)sender)->setOpacity(30);
    CCDirector::sharedDirector()->getRunningScene()->addChild(node,10,Global::TAG_Alert_Layer);
}
Example #20
0
//virtual 
void GameEntityView::initView()
{
	int cardW = 200;
	int cardH = 200;
	setContentSize( CCSizeMake( cardW, cardH ));
	setAnchorPoint(ccp(0.5f,0.5f));

	CCLayerColor* bg = CCLayerColor::create(ccc4(25,25,25,255), cardW,cardH);
	bg->setAnchorPoint(ccp(0,0));
	addChild(bg, 1);

	int margin = 2;
	m_highlight = CCLayerColor::create(ccc4(200,200,20,255), cardW+margin*2,cardH+margin*2);
	m_highlight->setPosition(ccp(-margin,-margin));
	m_highlight->setAnchorPoint(ccp(0,0));
	addChild(m_highlight, 0);
	setHighlighted(false);

	m_lblName = CCLabelTTF::create();
	m_lblName->initWithString( m_pEntity->getName().c_str(), "Arial", 24.0f  );
	m_lblName->setAnchorPoint(ccp(0.0f, 1.0f ) );
	m_lblName->setPositionY(cardH);
	addChild(m_lblName, 50);

	int healthBarH = 30;
	m_healthBar = ProgressBar::create( CCRectMake(0,0, cardW/2, healthBarH) );
	m_healthBar->setMargin(margin);
	m_healthBar->setProgress(  m_pEntity->getProperty("hp_curr") / (m_pEntity->getProperty("hp_base")) );
	m_healthBar->setAnchorPoint(ccp(0.0f, 1.0f) );
	m_healthBar->setPositionY( 200 - m_lblName->getContentSize().height );
	addChild(m_healthBar, 49);

	int manaBarH = 10;
	m_manaBar = ProgressBar::create( CCRectMake( 0,0, cardW/2, manaBarH ) );
	m_manaBar->setMargin(margin);
	m_manaBar->setColor( ccc3(50,50,255), ccc3(50,50,50) );
	m_manaBar->setProgress( m_pEntity->getProperty("mana_curr") / (m_pEntity->getProperty("mana_base")) );
	m_manaBar->setAnchorPoint(ccp(0,1.0f));
	m_manaBar->setPositionY( m_healthBar->getPositionY() - (m_healthBar->getContentSize().height + margin*2) );
	addChild(m_manaBar, 48);

	int xpBarH = 10;
	m_xpBar = ProgressBar::create( CCRectMake( 0,0, cardW, xpBarH ) );
	m_xpBar->setMargin(margin);
	m_xpBar->setColor( ccc3(150,150,150), ccc3(20,20,20) );

	if(  m_pEntity->getProperty("xp_next") > 0 ) {
		m_xpBar->setProgress( m_pEntity->getProperty("xp_curr") / m_pEntity->getProperty("xp_next") );
	}else {
		m_xpBar->setVisible(false);
	}
	m_xpBar->setAnchorPoint( ccp(0, 1.0f) );
	m_xpBar->setPositionY( m_manaBar->getPositionY() - (m_manaBar->getContentSize().height + margin*2) );
	addChild(m_xpBar, 48);


	m_lblLevel = CCLabelTTF::create();
	m_lblLevel->initWithString( m_pEntity->getLevelStr().c_str(), "Arial", 10.0f );
	m_lblLevel->setAnchorPoint( ccp(0.0f, 1.0f ) );
	m_lblLevel->setPositionY( m_xpBar->getPositionY() + xpBarH/2 );
	addChild(m_lblLevel, 49);
	
	int bufIndSize = cardW/6;
	m_buffIndicator = CCLayerColor::create(ccc4(25,200,25,255), bufIndSize,bufIndSize);
	//m_buffIndicator->setAnchorPoint(ccp(0.0f,0.0f));
	m_buffIndicator->setPositionX(cardW - bufIndSize);
	m_buffIndicator->setPositionY(cardH - bufIndSize);
	m_buffIndicator->setVisible(false);
	addChild(m_buffIndicator, 10);
	

	m_debuffIndicator = CCLayerColor::create(ccc4(200,25,25,255), bufIndSize,bufIndSize);
	//m_debuffIndicator->setAnchorPoint(ccp(0,0));
	m_debuffIndicator->setPositionX(cardW - (bufIndSize*2 + margin));
	m_debuffIndicator->setPositionY(cardH - bufIndSize);
	m_debuffIndicator->setVisible(false);
	addChild(m_debuffIndicator, 10);
	
	 
	std::vector<CastCommandState*>& abilities = m_pEntity->getAbilityList();
	int maxPerRow = 2;
	int row = 0;
	int col = 0;
	for( int i=0; i < abilities.size(); i++)
	{
		col = (i/maxPerRow);
		row = i - (col*maxPerRow);

		CastCommandState* ability = abilities[i];

		GameAbilityView* abilityView = new GameAbilityView( ability );
		m_abilityViews.push_back(abilityView);

		abilityView->setPositionX( col * abilityView->getContentSize().width );
		abilityView->setPositionY( row * abilityView->getContentSize().height );
		addChild(abilityView, 51);
	}
}
Example #21
0
// on "init" you need to initialize your instance
bool GameScene::init()
{
    if ( !CCLayer::init() )
    {
        return false;
    }

    // Variables de tamanyo
    CCSize vs = CCDirector::sharedDirector()->getVisibleSize();
    CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin();

    // Layer con los botones al hacer pause
    _layerPause = CCLayerColor::create(ccc4(255,255,255,0));
    _layerPause->setContentSize(CCSizeMake(350, 100));
    _layerPause->ignoreAnchorPointForPosition(false);
    _layerPause->setAnchorPoint(ccp(0.5, 0.5));
    _layerPause->setPosition(ccp(vs.width/2, vs.height/2));
    _layerPause->retain();

    CCMenuItem* button_resume = CCMenuItemImage::create("btn_resume.png", "btn_resume_h.png", this, menu_selector(GameScene::menuResumeCallback));
    button_resume->setPosition(ccp(50, 50));
    CCMenuItem* button_restart = CCMenuItemImage::create("btn_restart.png", "btn_restart_h.png", this, menu_selector(GameScene::menuRestartCallback));
    button_restart->setPosition(ccp(175, 50));
    CCMenuItem* button_exit = CCMenuItemImage::create("btn_exit.png", "btn_exit_h.png", this, menu_selector(GameScene::menuExitCallback));
    button_exit->setPosition(ccp(300, 50));

    CCMenu* menu_pause = CCMenu::create(button_resume, button_restart, button_exit, NULL);
    menu_pause->setPosition(ccp(0,0));

    _layerPause->addChild(menu_pause);

    // Layer que se muestra al terminar la carrera
    _layerEnd = CCLayerColor::create(ccc4(0,0,0,0));
    _layerEnd->setContentSize(CCSizeMake(225, 225));
    _layerEnd->ignoreAnchorPointForPosition(false);
    _layerEnd->setAnchorPoint(ccp(0.5, 0.5));
    _layerEnd->setPosition(ccp(vs.width/2, vs.height/2));
    _layerEnd->retain();

    CCMenuItem* button_end_restart = CCMenuItemImage::create("btn_restart.png", "btn_restart_h.png", this, menu_selector(GameScene::menuRestartCallback));
    button_end_restart->setPosition(ccp(50, 50));
    CCMenuItem* button_end_exit = CCMenuItemImage::create("btn_exit.png", "btn_exit_h.png", this, menu_selector(GameScene::menuExitCallback));
    button_end_exit->setPosition(ccp(175, 50));

    CCMenu* menu_end = CCMenu::create(button_end_restart, button_end_exit, NULL);
    menu_end->setPosition(ccp(0,0));

    CCLayerColor* layerTime = CCLayerColor::create(ccc4(255,255,255,255));
    layerTime->setContentSize(CCSizeMake(225, 100));
    layerTime->ignoreAnchorPointForPosition(false);
    layerTime->setAnchorPoint(ccp(0.5, 0.5));
    layerTime->setPosition(ccp(112.5, 175));
    layerTime->retain();

    _labelTimeEnd = CCLabelTTF::create("Time:\n0:00:000", "fonts/FrancoisOne.ttf", 30, CCSizeMake(225, 100), kCCTextAlignmentCenter);
    _labelTimeEnd->setColor(ccc3(0,0,0));
    _labelTimeEnd->setPosition(ccp(112.5, 50));
    layerTime->addChild(_labelTimeEnd);

    _layerEnd->addChild(menu_end);
    _layerEnd->addChild(layerTime);


    // Boton de pause (menu)
    CCMenuItem* button_pause = CCMenuItemImage::create("btn_pause.png", "btn_pause_h.png", this, menu_selector(GameScene::menuPauseCallback));
    button_pause->setPosition(ccp(75, vs.height - 75));

    CCMenu* menu = CCMenu::create(button_pause, NULL);
    menu->setPosition(ccp(0,0));

    // Velocidad
    CCString* stringVel = CCString::createWithFormat("%d km/h", (int)_vel);
    _labelVel = CCLabelTTF::create(stringVel->getCString(), "fonts/FrancoisOne.ttf", 30, CCSizeMake(140, 50), kCCTextAlignmentCenter);
    _labelVel->setColor(ccc3(255,255,255));
    _labelVel->setPosition(ccp(vs.width - 72, 50));

    // Distancia
    CCString* stringDist = CCString::createWithFormat("%d m", (int)_dist);
    _labelDist = CCLabelTTF::create(stringDist->getCString(), "fonts/FrancoisOne.ttf", 30, CCSizeMake(140, 50), kCCTextAlignmentCenter);
    _labelDist->setColor(ccc3(255,255,255));
    _labelDist->setPosition(ccp(72, 50));

    // Tiempo
    int hs = _time/3600000;
    int mins = (_time%3600000)/60000;
    int ss = ((_time%3600000)%60000)/1000;
    int ms = ((_time%3600000)%60000)%1000;
    CCString* stringTime = CCString::createWithFormat("%d:%02d:%03d", mins, ss, ms);
    _labelTime = CCLabelTTF::create(stringTime->getCString(), "fonts/FrancoisOne.ttf", 30, CCSizeMake(140, 50), kCCTextAlignmentCenter);
    _labelTime->setColor(ccc3(255,255,255));
    _labelTime->setPosition(ccp(vs.width - 72, vs.height - 50));

    // Click to start
    _labelStart = CCLabelTTF::create("Click to Start", "fonts/FrancoisOne.ttf", 50, CCSizeMake(200, 200), kCCTextAlignmentCenter);
    _labelStart->setColor(ccc3(255,255,255));
    _labelStart->setPosition(ccp(vs.width/2, vs.height/2));
    _labelStart->retain();

    // Hierba
    ccTexParams tp = { GL_LINEAR, GL_LINEAR, GL_REPEAT, GL_REPEAT};
    CCTexture2D* texture = CCTextureCache::sharedTextureCache()->addImage("texture_grass2.jpg");
    texture->setTexParameters(&tp);
    _grass = CCSprite::createWithTexture(texture, CCRectMake(0, 0, vs.width, vs.height + 256));
    _grass->setPosition( ccp( vs.width/2, vs.height/2 + 128 ) );

    // Carretera
    texture = CCTextureCache::sharedTextureCache()->addImage("texture_road2.jpg");
    texture->setTexParameters(&tp);
    _road = CCSprite::createWithTexture(texture, CCRectMake(0, 0, 512, vs.height + 512));
    _road->setPosition( ccp( vs.width/2, vs.height/2 + 256 ) );

    // Pianos
    texture = CCTextureCache::sharedTextureCache()->addImage("piano.png");
    texture->setTexParameters(&tp);
    _piano1 = CCSprite::createWithTexture(texture, CCRectMake(0, 0, 64, vs.height + 64));
    _piano1->setPosition( ccp(vs.width * 0.15, vs.height / 2 + 32) );
    _piano2 = CCSprite::createWithTexture(texture, CCRectMake(0, 0, 64, vs.height + 64));
    _piano2->setPosition( ccp(vs.width * 0.85, vs.height / 2 + 32) );

    // Coche
    _car = CCSprite::create("car_above_blue.png");
    _car->setPosition(ccp(vs.width/2, 50));

    // Creamos los indicadores de curva
    _curvasI = new CCArray;
    _curvasD = new CCArray;

    for (int i = 1; i <= 5; i++) {
        CCString* str_curvaI = CCString::createWithFormat("curva_izq_%d.png", i);
        CCString* str_curvaD = CCString::createWithFormat("curva_der_%d.png", i);
        CCSprite* curvaI = CCSprite::create(str_curvaI->getCString());
        curvaI->setOpacity(0);
        curvaI->setPosition(ccp(vs.width/2, vs.height/4*3));
        CCSprite* curvaD = CCSprite::create(str_curvaD->getCString());
        curvaD->setOpacity(0);
        curvaD->setPosition(ccp(vs.width/2, vs.height/4*3));
        _curvasI->addObject(curvaI);
        _curvasD->addObject(curvaD);
        this->addChild(curvaI, 5);
        this->addChild(curvaD, 5);
    }

    // Anyadimos los elementos a la vista
    this->addChild(_grass, 1);
    this->addChild(_road, 2);
    this->addChild(_car, 3);
    this->addChild(menu, 5);
    this->addChild(_labelVel, 5);
    this->addChild(_labelDist, 5);
    this->addChild(_labelTime, 5);
    this->addChild(_labelStart, 5);


    // Inicializamos el vector de curvas segun el nivel
    if (_level == 1) {
        _curvas.push_back(Curva(250, 200, 2, false));
        _curvas.push_back(Curva(550, 200, 2, false));
        _curvas.push_back(Curva(1200, 100, 4, false));
        _curvas.push_back(Curva(1650, 200, 2, false));
        _curvas.push_back(Curva(1950, 200, 2, false));
        _curvas.push_back(Curva(2500, 200, 2, false));
        _curvas.push_back(Curva(2800, 200, 2, false));
        _mCircuito = 3000;

    } else if (_level == 2) {
        _curvas.push_back(Curva(100, 150, 2, false));
        _curvas.push_back(Curva(350, 150, 2, false));
        _curvas.push_back(Curva(700, 250, 1, false));
        _curvas.push_back(Curva(1150, 150, 3, false));
        _curvas.push_back(Curva(1500, 100, 4, false));
        _curvas.push_back(Curva(1800, 100, 4, false));
        _curvas.push_back(Curva(2000, 200, 2, true));
        _curvas.push_back(Curva(2300, 50, 5, true));
        _curvas.push_back(Curva(2750, 150, 2, true));
        _curvas.push_back(Curva(3000, 50, 4, true));
        _curvas.push_back(Curva(3100, 100, 2, false));
        _curvas.push_back(Curva(3300, 100, 2, false));
        _curvas.push_back(Curva(3500, 100, 4, false));
        _curvas.push_back(Curva(3800, 250, 2, false));
        _curvas.push_back(Curva(4250, 250, 1, false));
        _curvas.push_back(Curva(4700, 150, 3, false));
        _mCircuito = 5350;

    } else { // _level == 3
        _curvas.push_back(Curva(100, 50, 2, true));
        _curvas.push_back(Curva(250, 50, 2, false));
        _curvas.push_back(Curva(400, 100, 4, false));
        _curvas.push_back(Curva(600, 100, 2, false));
        _curvas.push_back(Curva(800, 50, 4, true));
        _curvas.push_back(Curva(950, 50, 4, true));
        _curvas.push_back(Curva(1100, 100, 2, false));
        _curvas.push_back(Curva(1300, 50, 4, true));
        _curvas.push_back(Curva(1450, 50, 4, true));
        _curvas.push_back(Curva(1600, 100, 4, false));
        _curvas.push_back(Curva(1900, 100, 2, false));
        _curvas.push_back(Curva(2100, 50, 5, true));
        _curvas.push_back(Curva(2450, 100, 2, true));
        _curvas.push_back(Curva(2650, 50, 5, false));
        _curvas.push_back(Curva(2900, 100, 4, false));
        _curvas.push_back(Curva(3200, 150, 2, true));
        _curvas.push_back(Curva(3450, 100, 4, true));
        _curvas.push_back(Curva(3650, 50, 4, true));
        _curvas.push_back(Curva(3800, 100, 4, false));
        _curvas.push_back(Curva(4000, 50, 4, true));
        _curvas.push_back(Curva(4150, 150, 2, true));
        _curvas.push_back(Curva(4400, 100, 2, false));
        _curvas.push_back(Curva(4600, 100, 2, false));
        _curvas.push_back(Curva(4800, 100, 5, true));
        _curvas.push_back(Curva(5000, 50, 2, true));
        _curvas.push_back(Curva(5150, 100, 5, false));
        _curvas.push_back(Curva(5450, 200, 5, true));
        _mCircuito = 5850;
    }

    // Inicializamos el vector de coches en contra
    _oppCars = new CCArray;

    // Activamos el acelerometro y el touch
    this->setTouchEnabled(true);

    // Calculamos el tamanyo de cada tramo para informar al Arduino
    int nleds = CCUserDefault::sharedUserDefault()->getIntegerForKey("nleds");
    _longTramo = (int) (_mCircuito/nleds);

    // Enviamos al Arduino que hemos entrado
    int iColor = CCUserDefault::sharedUserDefault()->getIntegerForKey("color");
    CCDictionary* prms = CCDictionary::create();
    prms->setObject(CCString::createWithFormat("%d", iColor), "color");
    SendMessageWithParams(string("JugadorEntra"), prms);

    return true;
}
Example #22
0
// on "init" you need to initialize your instance
bool TutorialScene::init(bool firstTime)
{
    //////////////////////////////
    // 1. super init first
    if ( !CCLayer::init() )
    {
        return false;
    }
    
    
    
    //navigation
    _firstTime = firstTime;
    _moveStarted = false;
    
    CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize();
    
    CCLayerColor* background = CCLayerColor::create(ccc4(0, 0, 0, 255), visibleSize.width, visibleSize.height);
    background->setAnchorPoint(ccp(0,0));
    addChild(background);

    CCMenuItemImage* nextImgItem = CCMenuItemImage::create(
                                                             "Interfeiss/buttons/arrow_r_btn0001.png",
                                                             "Interfeiss/buttons/arrow_r_btn0002.png",
                                                             this,
                                                             menu_selector(TutorialScene::btNextCallback));
    
    CCMenuItemImage* prevImgItem = CCMenuItemImage::create(
                                                           "Interfeiss/buttons/arrow_l_btn0001.png",
                                                           "Interfeiss/buttons/arrow_l_btn0002.png",
                                                           this,
                                                           menu_selector(TutorialScene::btPrevCallback));
    
    CCMenuItemImage* closeItem = CCMenuItemImage::create(
                                                           "Interfeiss/buttons/close_btn0001.png",
                                                           "Interfeiss/buttons/close_btn0002.png",
                                                           this,
                                                           menu_selector(TutorialScene::btCloseCallback));
    
    _images[0] = "Interfeiss/tutorial/1.png";
    _images[1] = "Interfeiss/tutorial/2.png";
    _images[2] = "Interfeiss/tutorial/3.png";
    _images[3] = "Interfeiss/tutorial/4.png";
    _images[4] = "Interfeiss/tutorial/5.png";
    _images[5] = "Interfeiss/tutorial/6.png";
    
    nextImgItem->setAnchorPoint(ccp(1,0));
    prevImgItem->setAnchorPoint(ccp(0,0));
    closeItem->setAnchorPoint(ccp(1,1));
    
    CCMenu* nextMenu = CCMenu::create(nextImgItem, NULL);
    CCMenu* prevMenu = CCMenu::create(prevImgItem, NULL);
    CCMenu* closeMenu = CCMenu::create(closeItem, NULL);
    
    prevMenu->setPosition(ccp(10,10));
    nextMenu->setPosition(visibleSize.width - 10, 10);
    closeMenu->setPosition(visibleSize.width - 10, visibleSize.height - 10);
    
    _activeImage = CCSprite::create(_images[0].c_str());
    _activeImage->setAnchorPoint(ccp(0,0));
    _activeImage->setPositionY((visibleSize.height - _activeImage->getContentSize().height) / 2);
    addChild(_activeImage,0);
    _activeImg = 0;
    showFirstPageAnimation();
    
    addChild(nextMenu, 1);
    addChild(prevMenu, 2);
//    addChild(closeMenu, 3);
    
    return true;
}
bool MethodStackLayer::init()
{
    CCSize mapSize = GameParams::getInstanse()->mapSize();
    
    if ( !CCLayer::init() )
    {
        return false;
    }
    
    stackCapasity = ((int)mapSize.height - 400) / (int)BUTTON_TILE_SIZE;
    
    showButton = CCMenuItemSprite::create(PMTextureCache::instanse()->getShowIconSprite(),
                                          PMTextureCache::instanse()->getShowIconSprite_Selected(),
                                          PMTextureCache::instanse()->getShowIconSprite_Disabled(),
                                          this, menu_selector(MethodStackLayer::show));
    
    hideButton = CCMenuItemSprite::create(PMTextureCache::instanse()->getHideIconSprite(),
                                          PMTextureCache::instanse()->getHideIconSprite_Selected(),
                                          PMTextureCache::instanse()->getHideIconSprite_Disabled(),
                                          this, menu_selector(MethodStackLayer::hide));
    
    clearButton = CCMenuItemSprite::create(PMTextureCache::instanse()->getClearIconSprite(),
                                          PMTextureCache::instanse()->getClearIconSprite_Selected(),
                                          PMTextureCache::instanse()->getClearIconSprite_Disabled(),
                                          this, menu_selector(MethodStackLayer::clear));
    
    showButton->setAnchorPoint( CCPointZero );
    showButton->setPosition( CCPointZero );
    hideButton->setAnchorPoint( CCPointZero );
    hideButton->setPosition( CCPointZero );
    clearButton->setPosition( ccp(0, - hideButton->getContentSize().height) );
    clearButton->setAnchorPoint( CCPointZero );
    clearButton->setEnabled(false);
    
    hideButton->setVisible(false);
    
    CCMenu *menu = CCMenu::create(showButton, hideButton, clearButton, NULL);
    menu->setAnchorPoint( CCPointZero );
    menu->setPosition( ccp(0, stackCapasity * BUTTON_TILE_SIZE - showButton->getContentSize().height) );
    
    setContentSize(CCSizeMake(BUTTON_TILE_SIZE + showButton->getContentSize().width, stackCapasity * BUTTON_TILE_SIZE));
    setPosition(ccp(mapSize.width - showButton->getContentSize().width, 200));
    
    CCLayerColor *colorLayer = CCLayerColor::create(ccc4(145,145,145,255 * 0.5f), BUTTON_TILE_SIZE, stackCapasity * BUTTON_TILE_SIZE);
    colorLayer->setAnchorPoint( ccp(0,0) );
    colorLayer->setPosition( ccp(showButton->getContentSize().width,0) );
    
    scroll = MethodScrollLayer::create(this);
    scroll->setViewSize( CCSizeMake(BUTTON_TILE_SIZE, stackCapasity * BUTTON_TILE_SIZE) );
    scroll->setAnchorPoint( ccp(0,0) );
    scroll->setPosition( ccp(showButton->getContentSize().width,0) );
    scroll->setContentSize( CCSizeMake(BUTTON_TILE_SIZE, stackCapasity * BUTTON_TILE_SIZE) );
    scroll->setContentOffset( ccp(0, 0), true);
    scroll->setClippingToBounds(true);
    scroll->setDirection(kCCScrollViewDirectionVertical);
    scroll->setZoomScale(0.5);
    scroll->setBounceable(true);
    
    addChild(menu);
    addChild(colorLayer);
    addChild(scroll, 10);
    
    topPoint = ccp(showButton->getContentSize().width, getContentSize().height - BUTTON_TILE_SIZE);
    curPoint = CCPointZero;
    
    //clear();
    
	lastButtonRepeater = false;

    return true;
}
void SGAnnouncementLayer::initScrollView()
{
	//ResourceManager::sharedInstance()->bindTexture("sgannouncementlayer/sgannouncementlayer2.plist", RES_TYPE_LAYER_UI, sg_announcementLayer);
    m_scrollview->getContainer()->removeAllChildrenWithCleanup(true);
    int positionY = 0;// Y轴纵向偏移,
	int border_shift = 20;//内容窗口偏移
	
    int text_wid_expand = 40;//文本区宽度扩展
	if (CCEGLView::sharedOpenGLView()->getFrameSize().width == ipadResource.size.width
        ||CCEGLView::sharedOpenGLView()->getFrameSize().width == ipadhdResource.size.width)
	{
		text_wid_expand = 28;
	}
	
	//记录上一个内容窗口的底线位置
	float lastWindowBorderPos = 0.0f;
    for(int i = 0; i < m_arrayAnn->count(); i++)
	//for (int i = 0; i < 6; i++)
    {
		
		//=======================获取数据================================
		SGAnnouncementDataModel *ann = (SGAnnouncementDataModel *)m_arrayAnn->objectAtIndex(i);
		CCString *title = ann->getTitle();
		CCString *content = ann->getContent();

		int viewId = ann->getViewId();//跳转至哪个页面
		//=======================获取数据================================
		
        CCLayer *layer = (CCLayer*)m_scrollview->getContainer();//获取scrollview的容器

        CCLayerColor* contentWindow = initContentWindow(content, viewId > 0);
        contentWindow->setAnchorPoint(ccp(0.5, 0));
        contentWindow->ignoreAnchorPointForPosition(false);
        
        CCSize cwSize = contentWindow->getContentSize();
        
        CCSprite * sprite = CCSprite::createWithSpriteFrameName("Tips.png");
        sprite->setScaleX(cwSize.width / 584.0);
        sprite->setScaleY(cwSize.height / 522.0);
        sprite->setPosition(ccp(cwSize.width * 0.5, cwSize.height * 0.5));
        contentWindow->addChild(sprite, 2);
        
		//根据上一个内容窗口的位置计算下一个窗口的位置
		contentWindow->setPosition(ccp(layer->getContentSize().width * 0.5,
									   lastWindowBorderPos + border_shift));
		
        /* tips.png图片拉长的倍数 */
        float pngScale = cwSize.height / 522 ;
//        CCLOG("*******************>>>");
//        CCLOG("i = %d" , i);
//        CCLOG("title = %s" , title->getCString());
//        CCLOG("content = %s" , content->getCString());
//        CCLOG("pos: x=%f , y = %f" , contentWindow->getPositionX() , contentWindow->getPositionY());
//        CCLOG("cwSize: width=%f, height=%f", cwSize.width, cwSize.height);
//        CCLOG("lastWindowBorderPos = %f" , lastWindowBorderPos);
//        CCLOG("<<<********************");
        lastWindowBorderPos = contentWindow->getPositionY() + cwSize.height;

		//公告title
        CCLabelTTF *label = CCLabelTTF::create(title->getCString(), FONT_PANGWA, 35);
        label->setColor(COLOR_RED);
        label->setAnchorPoint(ccp(0.5 , 1));
		label->setPosition(ccp(cwSize.width *0.5f, cwSize.height - pngScale * 20));
		contentWindow->addChild(label, 100);
		//公告内容
//        CCSize maybeTextSize = stringInLabelRect(content->getCString());
//		CCLabelTTF *label_content=CCLabelTTF::create(content->getCString(), FONT_PENGYOU, 24,CCSizeMake(maybeTextSize.width + text_wid_expand * 4,maybeTextSize.height + text_hei_expand),kCCTextAlignmentLeft);
        CCLabelTTF *label_content=CCLabelTTF::create(content->getCString(), FONT_PENGYOU, 24,CCSizeMake(cwSize.width - 40 * widthFactor, cwSize.height - label->getContentSize().height),kCCTextAlignmentLeft);
		label_content->setAnchorPoint(ccp(0.5, 1));//内容顶线对齐
        label_content->setColor(ccBLACK);
		label_content->setPosition(ccp(label->getPositionX(), label->getPositionY() - label->getContentSize().height));
		label_content->setZOrder(102);
        contentWindow->addChild(label_content);
		
		//点击前往按钮
        if (viewId > 0) {
            SGButton *goButton = SGButton::create("box_btnbg.png", NULL, this, menu_selector(SGAnnouncementLayer::AnnounceButton),CCPointZero,false,true);
            
            CCString *go = CCString::createWithFormat(str_Hit_goto);
            SGCCLabelTTF *go_label = SGCCLabelTTF::create(go->getCString(), FONT_PANGWA, 30);
            
            goButton->addChild(go_label);
            goButton->setTag(viewId);//跳转到某个视图界面
            go_label->setPosition(ccp(goButton->getContentSize().width / 2, goButton->getContentSize().height / 2));
            
            //立即前往Button
            CCMenu *menu = CCMenu::create(goButton, NULL);
            menu->setTouchPriority(0);
            menu->setPosition(CCPointZero);
            goButton->setScale(0.7);
            goButton->setZOrder(200);
            //goButton->setPosition(ccp(label->getPositionX(), goButton->getContentSize().height / 1.5));
            goButton->setAnchorPoint(ccp(0.5, 0));
            goButton->setPosition(ccp(label->getPositionX(), pngScale * 18));
            menu->setZOrder(200);
            contentWindow->addChild(menu);
        }

		layer->addChild(contentWindow);
        //每次加对应的contentWindow的大小,为之后计算scrollview的内容体偏移
        positionY += (cwSize.height + border_shift);

    }
	//layer->setContentSize(CCSizeMake(504, m_scrollview->getContentSize().height));
	//控制是否可以滑动
	iscanmove = (positionY)>791?true:false;//@note:591是m_scrollview的可视区域高度
	

	m_scrollview->setContentOffset(ccp(0, -positionY + m_scrollview->getContentSize().height - 30));//20是顶部窗口的起始位置偏移,不减去会有一小部分遮挡
    m_scrollview->setContentSize(CCSizeMake(m_scrollview->getContentSize().width, positionY));//scrollview的真正大小
    m_scrollview->getContainer()->setContentSize(CCSizeMake(m_scrollview->getContentSize().width, positionY + 10));//滚动重置时的container位置
}
// on "init" you need to initialize your instance
bool MainMenuScene::init()
{
    // Parent
    CCLayerColor *layer = CCLayerColor::create();
    layer->initWithColor(ccc4(255, 255, 255, 255), VisibleRect::right().x , VisibleRect::top().y);
    layer->setPosition(VisibleRect::center());
    layer->setAnchorPoint(ccp(0.5f, 0.5f));
    layer->ignoreAnchorPointForPosition(false);
    addChild(layer, 0);
    
    CCSprite *fondo = CCSprite::create("fondo.png");
    fondo->setPosition(VisibleRect::center());
    layer->addChild(fondo);
    
    // 1st Son
    CCLayerColor *upperLayer = CCLayerColor::create();
    upperLayer->setContentSize(ccp(VisibleRect::right().x , VisibleRect::top().y/2));
    //upperLayer->initWithColor(ccc4(120, 120, 120, 120), VisibleRect::right().x , VisibleRect::top().y/2);
    upperLayer->setPosition(ccp(VisibleRect::left().x, VisibleRect::center().y));
    upperLayer->setAnchorPoint(ccp(0,0));
    upperLayer->ignoreAnchorPointForPosition(false);
    layer->addChild(upperLayer, 0);
    
    CCSprite *spriteLogo = CCSprite::create("logo_opciones.png");
    spriteLogo->setPosition(ccp(layer->getPosition().x, layer->getPosition().y/2));
    upperLayer->addChild(spriteLogo);
    
    // 2nd Son
    CCLayerColor *lowerLayer = CCLayerColor::create();
    lowerLayer->setContentSize(ccp(VisibleRect::right().x , VisibleRect::top().y/2));
    //lowerLayer->initWithColor(ccc4(200, 200, 200, 200), VisibleRect::right().x , VisibleRect::top().y/2);
    lowerLayer->setPosition(ccp(VisibleRect::left().x, VisibleRect::bottom().y));
    lowerLayer->setAnchorPoint(ccp(0,0));
    lowerLayer->ignoreAnchorPointForPosition(false);
    layer->addChild(lowerLayer, 0);
    
    int mySize = lowerLayer->getContentSize().height / 3;
    
    // Button SAILKAPENA
    CCTexture2D *texture1 = CCTextureCache::sharedTextureCache()->addImage("botoia_normal.png");
    SpriteButton *pButton1 = SpriteButton::create(texture1 ,this, callfuncO_selector(MainMenuScene::menuSelector), 1.0f);
    pButton1->setTag(2);
    pButton1->setPosition(ccp(
                              lowerLayer->getContentSize().width / 2,
                              lowerLayer->getContentSize().height / 2));
    pButton1->setAnchorPoint(ccp(0.5f, 0.5f));
    CCLabelTTF *pLabel1 = CCLabelTTF::create("Sailkapena", "fonts/PT_Sans-Web-Bold.ttf", 30.0);
    pLabel1->setPosition(ccp(
                             lowerLayer->getContentSize().width / 2,
                             lowerLayer->getContentSize().height / 2));
    lowerLayer->addChild(pButton1);
    lowerLayer->addChild(pLabel1);
    
    // Button JOKATU
    CCTexture2D *texture2 = CCTextureCache::sharedTextureCache()->addImage("botoia_normal.png");
    SpriteButton *pButton2 = SpriteButton::create(texture2 ,this, callfuncO_selector(MainMenuScene::menuSelector), 1.0f);
    pButton2->setTag(1);
    pButton2->setPosition(ccp(
                              lowerLayer->getContentSize().width / 2,
                              (mySize * 3) - texture2->getContentSize().height));
    pButton2->setAnchorPoint(ccp(0.5f, 0.5f));
    CCLabelTTF *pLabel2 = CCLabelTTF::create("Jokatu", "fonts/PT_Sans-Web-Bold.ttf", 30.0);
    pLabel2->setPosition(ccp(
                             lowerLayer->getContentSize().width / 2,
                             (mySize * 3) - texture2->getContentSize().height));
    lowerLayer->addChild(pButton2);
    lowerLayer->addChild(pLabel2);
    
    // Button HONI BURUZ
    CCTexture2D *texture3 = CCTextureCache::sharedTextureCache()->addImage("botoia_normal.png");
    SpriteButton *pButton3 = SpriteButton::create(texture3 ,this, callfuncO_selector(MainMenuScene::menuSelector), 1.0f);
    pButton3->setTag(3);
    pButton3->setPosition(ccp(
                              lowerLayer->getContentSize().width / 2,
                              mySize - (texture2->getContentSize().height / 2)));
    pButton3->setAnchorPoint(ccp(0.5f, 0.5f));
    CCLabelTTF *pLabel3 = CCLabelTTF::create("Honi buruz", "fonts/PT_Sans-Web-Bold.ttf", 30.0);
    pLabel3->setPosition(ccp(
                             lowerLayer->getContentSize().width / 2,
                             mySize - (texture2->getContentSize().height / 2)));
    lowerLayer->addChild(pButton3);
    lowerLayer->addChild(pLabel3);
    
	return true;
}
//创建一个对应的简单的button,代表具体的章
CCLayerColor *SGSpecialBattleLayer::createChapButton(int buttonTag, SpecialBattleData *data)
{
    
    CCLayerColor *layerColor = CCLayerColor::create(ccc4(0, 255, 0, 0), 160, 160);
    layerColor->setTag(111);
    layerColor->setAnchorPoint(ccp(0.5, 0.5));
    
    if (data)
    {
    
        CCSprite *headIcon = SGDrawCards::createPureSprite(data->itemId, data->itemType, sg_specialBattleLayer);
        CCSprite *borderIcon = CCSprite::createWithSpriteFrameName("equipPinzhi_5_0.png");
        
        headIcon->addChild(borderIcon, 1);
        borderIcon->setPosition(ccpAdd(ccp(headIcon->getContentSize().width / 2, headIcon->getContentSize().height / 2), ccp(0, 0)));
        
        CCSprite *headIcon1 = SGDrawCards::createPureSprite(data->itemId, data->itemType, sg_specialBattleLayer);
        CCSprite *borderIcon1 = CCSprite::createWithSpriteFrameName("equipPinzhi_5_0.png");
        
        headIcon1->addChild(borderIcon1, 1);
        borderIcon1->setPosition(ccpAdd(ccp(headIcon1->getContentSize().width / 2, headIcon1->getContentSize().height / 2), ccp(0, 0)));
        
        
        //章节的按钮
        SGButton *chapButton = SGButton::createFromSprite(headIcon, headIcon1, this, menu_selector(SGSpecialBattleLayer::enterSpBattleSection));
        chapButton->setTag(buttonTag);
        
        //章节的名称 //250	197	68
        SGCCLabelTTF *chapNameTTF = SGCCLabelTTF::create(data->chapName.c_str(), FONT_PANGWA, 24);
        chapButton->addChild(chapNameTTF, 2);
        chapNameTTF->setInsideColor(ccc3(250, 197, 68));
        chapNameTTF->setPosition(ccpAdd(ccp(chapNameTTF->getContentSize().width / 2, chapNameTTF->getContentSize().height / 3.5), ccp(0, 0)));
        
        //如果没有开启,蒙灰
        if (!data->isOpen)
        {
            CCSprite *greyMask = CCSprite::createWithSpriteFrameName("sp_battle_entry_mask.png");
            greyMask->setOpacity(150);
            chapButton->addChild(greyMask, 10);
            greyMask->setPosition(ccpAdd(ccp(greyMask->getContentSize().width / 2 - 5, greyMask->getContentSize().height / 2 - 5), ccp(0, 0)));
            //未开启,不可用
            chapButton->setEnabled(false);
        }
        
        CCMenu *menu = CCMenu::create();
        menu->setTouchPriority(10);
        menu->setPosition(CCPointZero);
        menu->addChild(chapButton);
        
        layerColor->addChild(menu);
        chapButton->setPosition(ccpAdd(ccp(0, 0), ccp(layerColor->getContentSize().width / 2, layerColor->getContentSize().height / 1.5)));
        
        
        //显示描述的背景
        CCSprite *descBg = CCSprite::createWithSpriteFrameName("sp_battle_infobg.png");
        layerColor->addChild(descBg, 1);
        descBg->setPosition(ccpAdd(chapButton->getPosition(), ccp(0, -descBg->getContentSize().height / 2 - chapButton->getContentSize().height / 1.7)));
        
        //下方对应的描述
        
        std::string desc;
        if (data->isOpen)
        {
            desc = data->chapOpenDesc;
            //如果是开启的,加上光效
            ResourceManager::sharedInstance()->bindTexture("animationFile/ms_niubility.plist", RES_TYPE_LAYER_UI, sg_specialBattleLayer);
            CCSpriterX *newRewardEffect = CCSpriterX::create("animationFile/ms_niubility.scml", true, true);
            layerColor->addChild(newRewardEffect, -1);
            newRewardEffect->setanimaID(0);
            newRewardEffect->setisloop(true);
            newRewardEffect->setScale(1.15);
            newRewardEffect->setPosition(ccpAdd(chapButton->getPosition(), ccp(0, 0)));
            newRewardEffect->play();
        }
        else
        {
            desc = data->chapClosedDesc;
        }
        
        SGCCLabelTTF *chapDescTTF = SGCCLabelTTF::create(desc.c_str(), FONT_PANGWA, 21);
        descBg->addChild(chapDescTTF, 1);
        chapDescTTF->setPosition(ccpAdd(ccp(descBg->getContentSize().width / 2, descBg->getContentSize().height / 2), ccp(0, 0)));
        
        //如果开启状态,显示剩余次数
        if (data->isOpen)
        {
            SGCCLabelTTF *residueTimeTTF = SGCCLabelTTF::create(CCString::createWithFormat(str_SpecailBattleResidueCoint, data->freePlayTimes)->getCString(), FONT_PANGWA, 20);
            residueTimeTTF->setInsideColor(ccGREEN);
            layerColor->addChild(residueTimeTTF, 1);
            residueTimeTTF->setPosition(ccpAdd(descBg->getPosition(), ccp(0, -residueTimeTTF->getContentSize().height * 1.2)));
        }
    }
    else
    {
        //没有的,直接问号显示
        SGButton *chapButton = SGButton::create("sp_battle_unlock.png", "equipPinzhi_5_0.png", this, NULL);
        chapButton->setEnabled(false);
        layerColor->addChild(chapButton);
        chapButton->setPosition(ccpAdd(ccp(0, 0), ccp(layerColor->getContentSize().width / 2, layerColor->getContentSize().height / 1.5)));
    }
    
    return layerColor;
}