void ZhuangbeiXilianUI::clickXilianJingHua(CCObject *obj) { if (m_dInfoDialog) { m_dInfoDialog->removeFromParent(); m_dInfoDialog = NULL; } string tishiStr = LFStrings::getValue("XilianJingHuaShuoMing"); string cailiaoFileStr = "daoju_youlanzhiye.png"; //弹框背景 BaseSprite* dialog = BaseSprite::create("gongjiang_duanzao_cailiaobuzu_tanchukuang.png"); dialog->setPosition(ccp(mWinSize.width/2, mWinSize.height/2 + 50)); //提示 { BaseSprite *cailiaoBg = BaseSprite::create("daoju_kuang_bg.png"); dialog->addChild(cailiaoBg); cailiaoBg->setPosition(ccp(cailiaoBg->getContentSize().width/2 + 10, dialog->getContentSize().height/2)); BaseSprite *cailiaoImg = BaseSprite::create(cailiaoFileStr); cailiaoBg->addChild(cailiaoImg); cailiaoImg->setPosition(ccp(cailiaoBg->getContentSize().width/2, cailiaoBg->getContentSize().height/2)); CCLabelTTF* lable = CCLabelTTF::create(tishiStr.c_str(), fontStr_kaiti,20,CCSize(240, 0), kCCTextAlignmentLeft); dialog->addChild(lable); lable->setAnchorPoint(ccp(0,0.5)); lable->setPosition(ccp(cailiaoBg->getPositionX()+cailiaoBg->getContentSize().width/2 , dialog->getContentSize().height/2)); } //按键 CCMenu* menu = CCMenu::create(); { CCMenuItemImage* item = CCMenuItemImage::create( "gongjiang_duanzao_cailiaobuzu_tanchukuang.png", "gongjiang_duanzao_cailiaobuzu_tanchukuang.png", this, menu_selector(ZhuangbeiXilianUI::clickCiaoliaoShuoMing)); menu->addChild(item); item->setPosition(ccp(dialog->getContentSize().width/2, dialog->getContentSize().height/2)); item->setOpacity(0); item->setScaleX(mWinSize.width / dialog->getContentSize().width); item->setScaleY(mWinSize.height / dialog->getContentSize().height); // item->setScaleX(mWinSize.width / item->getContentSize().width); // item->setScaleY(mWinSize.height / item->getContentSize().height); } //弹框 { LFAlert* lfAlert = new LFAlert(); lfAlert->setBaseContainer(dialog,menu); CCDirector::sharedDirector()->getRunningScene()->addChild(lfAlert,128); lfAlert->release(); m_dInfoDialog = lfAlert; } }
CCMenuItemImage* HelloWorld::createPillar(int posX, int tag) { CCMenu* menu = CCMenu::create(); CCMenuItemImage* pillar = CCMenuItemImage::create("/pillar.png","/pillar.png",this,menu_selector(HelloWorld::selectPillar)); pillar->setScaleX(float(0.2)); pillar->setScaleY(float(0.4)); pillar->setPosition(ccp(posX,-75)); pillar->setTag(tag); pillar->setEnabled(false); menu->setTag(tag); menu->addChild(pillar); this->addChild(menu); return pillar; }
// on "init" you need to initialize your instance bool JoinLayer::init() { ////////////////////////////// // 1. super init first if ( !CCLayer::init() ) { return false; } CCSize size = CCDirector::sharedDirector()->getWinSize(); // double dScalX = size.width / 768 , dScalY= size.height / 1024; CCSprite* backgroundView = CCSprite::create("*****@*****.**"); backgroundView->setPosition(ccp(size.width / 2, size.height / 2)); float scale_x = size.width / backgroundView->getContentSize().width; float scale_y = size.height / backgroundView->getContentSize().height; backgroundView->setScaleX(scale_x); backgroundView->setScaleY(scale_y); addChild(backgroundView); CCSprite* spCharacter = CCSprite::create("*****@*****.**"); spCharacter->setPosition(ccp(size.width / 2, size.height / 2)); spCharacter->setScaleX(scale_x); spCharacter->setScaleY(scale_y); addChild(spCharacter); CCSprite* spLogo = CCSprite::create("*****@*****.**"); spLogo->setPosition(ccp(size.width / 2 , getY(size.height, 304, 71) * scale_y)); spLogo->setScaleX(scale_x); spLogo->setScaleY(scale_y); addChild(spLogo); CCSprite* spAdBanner = CCSprite::create("*****@*****.**"); spAdBanner->setPosition(ccp(size.width / 2 , getY(size.height, 50, 910) * scale_y)); spAdBanner->setScaleX(scale_x); spAdBanner->setScaleY(scale_y); addChild(spAdBanner); CCMenuItemImage *playButton = CCMenuItemImage::create("*****@*****.**", "*****@*****.**", this, menu_selector(JoinLayer::onClickPlay)); playButton->setPosition(ccp(size.width / 2, getY(size.height, 152, 664))); playButton->setScaleX(scale_x); playButton->setScaleY(scale_y); CCMenu* menu = CCMenu::create(playButton,NULL); menu->setPosition(CCPointZero); addChild(menu); return true; }
CCMenuItemImage* Objects2dFactory::imageButton(CCNode* scene, CCMenu* menu, string normalImagePath, string selectedImagePath, string disabledImagePath, float positionX, float positionY, float width, float height, SEL_MenuHandler selector, void* selectorArg, AlignX alignX, AlignY alignY, int zOrder) { // Check arguments validity if(scene == NULL || menu == NULL || !selector) return NULL; // Create a button menu item CCMenuItemImage *button = CCMenuItemImage::create( normalImagePath.c_str(), selectedImagePath.c_str(), disabledImagePath.c_str(), scene, selector); if(!button) return NULL; if (selectorArg != NULL) { button->setUserData(selectorArg); } // Place the menu item in the given position button->setPosition(ccp(positionX, positionY)); // Set anchor button->setAnchorPoint(ccp(Constants::getAnchorValue(alignX), Constants::getAnchorValue(alignY))); // Set menu item width float buttonWidth = button->boundingBox().size.width; if (width > 0) // if width is defined, it is setted { button->setScaleX(width / buttonWidth); } // Set menu item height float buttonHeight = button->boundingBox().size.height; if (height > 0) // if height is defined, it is setted { button->setScaleY(height / buttonHeight); } // Add button to the menu menu->addChild(button, zOrder); return button; }
CCMenuItemImage* Objects2dFactory::clickableRectangle(CCNode* scene, CCMenu* menu, ccColor3B color, float positionX, float positionY, float width, float height, SEL_MenuHandler selector, void* selectorArg, AlignX alignX, AlignY alignY, GLubyte opacity, int zOrder) { // Check arguments validity if(scene == NULL || menu == NULL || !selector) return NULL; // Create a button menu item CCMenuItemImage *button = CCMenuItemImage::create("TopQXResources/white.png", "TopQXResources/white.png", "TopQXResources/white.png", scene, selector); if(!button) return NULL; // Set argument if (selectorArg != NULL) { button->setUserData(selectorArg); } // Set color button->setColor(color); // Set opacity button->setOpacity(opacity); // Place the menu item in the given position button->setPosition(ccp(positionX, positionY)); // Set anchor button->setAnchorPoint(ccp(Constants::getAnchorValue(alignX), Constants::getAnchorValue(alignY))); // Set menu item width float buttonWidth = button->boundingBox().size.width; button->setScaleX(width / buttonWidth); // Set menu item height float buttonHeight = button->boundingBox().size.height; button->setScaleY(height / buttonHeight); // Add button to the menu menu->addChild(button, zOrder); return button; }
// on "init" you need to initialize your instance bool HelloWorld::init() { ////////////////////////////// // 1. super init first if ( !CCLayer::init() ) { return false; } ///////////////////////////// // 2. add a menu item with "X" image, which is clicked to quit the program // you may modify it. // add a "close" icon to exit the progress. it's an autorelease object CCMenuItemImage *pCloseItem = CCMenuItemImage::create( "CloseNormal.png", "CloseSelected.png", this, menu_selector(HelloWorld::menuCloseCallback) ); pCloseItem->setPosition( ccp(CCDirector::sharedDirector()->getWinSize().width - 20, 20) ); // create menu, it's an autorelease object CCMenu* pMenu = CCMenu::create(pCloseItem, NULL); pMenu->setPosition( CCPointZero ); this->addChild(pMenu, 1); ///////////////////////////// // 3. add your codes below... // add a label shows "Hello World" // create and initialize a label CCLabelTTF* pLabel = CCLabelTTF::create("Cocos2dx GreePlatform Binding Test", "Thonburi", 34); // ask director the window size CCSize size = CCDirector::sharedDirector()->getWinSize(); // position the label on the center of the screen pLabel->setPosition( ccp(size.width / 2, size.height - 20) ); // add the label as a child to this layer this->addChild(pLabel, 1); // add "HelloWorld" splash screen" pSprite = CCSprite::create("HelloWorld.png"); // position the sprite on the center of the screen pSprite->setPosition( ccp(size.width/2, size.height/2) ); // add the sprite as a child to this layer this->addChild(pSprite, 0); // GreeButton pGreeButtonText = CCLabelTTF::create("Log in", "Thonburi", 34); pGreeButtonText->setPosition(ccp(size.width - 100, size.height - 40)); this->addChild(pGreeButtonText, 1); CCMenuItemImage *pGree = CCMenuItemImage::create("gree.png", "gree.png", this, menu_selector(HelloWorld::menuGreeButtonCallback)); pGree->setPosition(ccp(size.width - 100, size.height - 100)); CCMenu* pGreeMenu = CCMenu::create(pGree, NULL); this->addChild(pGreeMenu, 1); pGreeMenu->setPosition(CCPointZero); pGree->setScaleY(3.0); pGree->setScaleX(3.0); return true; }
// on "init" you need to initialize your instance bool HelloWorld::init() { ////////////////////////////// // 1. super init first if ( !CCLayer::init() ) { return false; } CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize(); CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin(); ///////////////////////////// // 2. add a menu item with "X" image, which is clicked to quit the program // you may modify it. // add a "close" icon to exit the progress. it's an autorelease object CCMenuItemImage *pCloseItem = CCMenuItemImage::create( "CloseNormal.png", "CloseSelected.png", this, menu_selector(HelloWorld::menuCloseCallback)); pCloseItem->setPosition(ccp(origin.x + visibleSize.width - pCloseItem->getContentSize().width/2 , origin.y + pCloseItem->getContentSize().height/2)); // create menu, it's an autorelease object CCMenu* pMenu = CCMenu::create(pCloseItem, NULL); pMenu->setPosition(CCPointZero); this->addChild(pMenu, 1); ///////////////////////////// // 3. add your codes below... // add a label shows "Hello World" // create and initialize a label CCLabelTTF* pLabel = CCLabelTTF::create("Hello World", "Arial", 24); // position the label on the center of the screen pLabel->setPosition(ccp(origin.x + visibleSize.width/2, origin.y + visibleSize.height - pLabel->getContentSize().height)); // add the label as a child to this layer this->addChild(pLabel, 1); // add "HelloWorld" splash screen" CCSprite* pSprite = CCSprite::create("HelloWorld.png"); // position the sprite on the center of the screen pSprite->setPosition(ccp(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y)); // add the sprite as a child to this layer this->addChild(pSprite, 0); this->setKeypadEnabled(true); CCMenuItemImage *pItemPlay = CCMenuItemImage::create( "playgameNormal.png", "playgameClose.png",this,menu_selector(HelloWorld::menuPlayGameCallback)); pItemPlay->setPosition(ccp(visibleSize.width / 2, visibleSize.height*1.0f / 4.0f)); pItemPlay->setScaleX(visibleSize.width / 600); pItemPlay->setScaleY(visibleSize.height / 400); CCMenu *pMenuPlay = CCMenu::create(pItemPlay, NULL); pMenuPlay->setPosition(CCPointZero); this->addChild(pMenuPlay, 1); CCSprite *pcSprite = CCSprite::create("ScenceStart.png"); pcSprite->setPosition(ccp(visibleSize.width / 2, visibleSize.height / 2)); CCSize sz = pSprite->getContentSize(); pcSprite->setScaleX(visibleSize.width / sz.width); pcSprite->setScaleY(visibleSize.height / sz.height); this->addChild(pcSprite, 0); return true; }
bool MenuScene::init() { if(!CCLayer::init()) { return false; } //播放背景音乐 AudioEngine::sharedEngine()->playBackgroundMusic("sounds/0.mp3",true); //获取窗口大小 CCSize winSize = CCDirector::sharedDirector()->getWinSize(); //创建精灵 CCSprite* sprite = CCSprite::create("btn/menubg1.png"); //让背景的大小与窗口一样 sprite->setScaleX(winSize.width/sprite->getContentSize().width); sprite->setScaleY(winSize.height/sprite->getContentSize().height); //位置 sprite->setPosition(ccp(winSize.width/2,winSize.height/2)); //把精灵添加进场景里 this->addChild(sprite); ////////////////////////////////////////////////////////// //单机模式 CCMenuItemImage* singleGame = CCMenuItemImage::create( "btn/startbtn_normal.png", "btn/startbtn_touched.png", this, menu_selector(MenuScene::singleGameCallBack)); singleGame->setScaleY((winSize.height/singleGame->getContentSize().height*0.15)); singleGame->setScaleX((winSize.width /singleGame->getContentSize().width)*0.15); CCMenu* pMenu1 = CCMenu::create(singleGame,NULL); pMenu1->setPosition(ccp(winSize.width/2,winSize.height/2)); this->addChild(pMenu1, 2); CCSprite* start = CCSprite::create("btn/text_start.png"); start->setScaleX(winSize.width/start->getContentSize().width*0.1); start->setScaleY(winSize.height/start->getContentSize().height*0.07); start->setPosition(ccp(winSize.width/2,winSize.height/2)); this->addChild(start,3); ////////////////////////////////////////////////////////// //退出 CCMenuItemImage* quit = CCMenuItemImage::create( "btn/startbtn_normal.png", "btn/startbtn_touched.png", this, menu_selector(MenuScene::quitCallBack)); quit->setScaleY((winSize.height/quit->getContentSize().height*0.15)); quit->setScaleX((winSize.width /quit->getContentSize().width)*0.15); CCMenu* pMenu2 = CCMenu::create(quit,NULL); pMenu2->setPosition(ccp(winSize.width/2,winSize.height/2*0.5)); this->addChild(pMenu2, 2); CCSprite* quitImage = CCSprite::create("btn/quit.png"); quitImage->setScaleX(winSize.width/quitImage->getContentSize().width*0.1); quitImage->setScaleY(winSize.height/quitImage->getContentSize().height*0.07); quitImage->setPosition(ccp(winSize.width/2,winSize.height/2*0.5)); this->addChild(quitImage,3); //auto audioEngine=AudioEngine::getInstance(); //audioEngine->playEffect("sounds/1000.ogg"); return true; }
CCMenuItemImage* Objects2dFactory::textButton(CCNode* scene, CCMenu* menu, string value, string normalImagePath, string selectedImagePath, string disabledImagePath, float positionX, float positionY, float width, float height, SEL_MenuHandler selector, void* selectorArg, AlignX alignX, AlignY alignY, ccColor3B textColor, int zOrder) { // Check arguments validity if(scene == NULL ||menu == NULL || !selector) return NULL; // Create a button menu item CCMenuItemImage *button = CCMenuItemImage::create( normalImagePath.c_str(), selectedImagePath.c_str(), disabledImagePath.c_str(), scene, selector); if(!button) return NULL; if (selectorArg != NULL) { button->setUserData(selectorArg); } // Place the menu item in the given position button->setPosition(ccp(positionX, positionY)); // Set menu item anchor button->setAnchorPoint(ccp(Constants::getAnchorValue(alignX), Constants::getAnchorValue(alignY))); // Set menu item height float buttonHeight = button->boundingBox().size.height; float buttonPosScaleHeight = buttonHeight; if (height > 0) // if height is defined, it is setted { button->setScaleY(height / buttonHeight); buttonPosScaleHeight = height; } // Create a label and initialize with the given string CCLabelTTF* pLabel = CCLabelTTF::create(value.c_str(), "Arial"/*string(Constants::getResourcesPath() + "SOResources/Fonts/AlphaFridgeMagnetsAllCap.ttf").c_str()*/, buttonPosScaleHeight * 0.6f); if(!pLabel) return NULL; // Set color pLabel->setColor(textColor); // Set menu item width float buttonWidth = button->boundingBox().size.width; float buttonPosScaleWidth = buttonWidth; if (width > 0) // if width is defined, it is setted { button->setScaleX(width / buttonWidth); buttonPosScaleWidth = width; } else // otherwise, we will compare the text width with the button width { float textWidth = pLabel->boundingBox().size.width; if (textWidth * 1.25 > buttonWidth) // if the width adapted to the text is bigger than the button width, adapted width must be setted, otherwise, button width must stay as it was { button->setScaleX(textWidth * 1.25f / buttonWidth); buttonPosScaleWidth = textWidth * 1.25f; } } // Place the label; must be in the center of the button pLabel->setPosition(ccp(buttonPosScaleWidth * 0.5f * 1/button->getScaleX(), buttonPosScaleHeight * 0.5f * 1/button->getScaleY())); // Set label centered anchor pLabel->setAnchorPoint(ccp(Constants::getAnchorValue(Centered), Constants::getAnchorValue(Middle))); // Add label to button button->addChild(pLabel); // Set label scale; the inverse of button scale, so label can be as it would be if it was a child of scene pLabel->setScaleY(1/button->getScaleY()); pLabel->setScaleX(1/button->getScaleX()); // If label is larger than button if (pLabel->boundingBox().size.width * button->getScaleX() > button->boundingBox().size.width) { // Label must be rescaled float newScale = button->boundingBox().size.width / (pLabel->boundingBox().size.width * button->getScaleX()); pLabel->setScaleX(pLabel->getScaleX() * newScale); } // Add button to the menu menu->addChild(button, zOrder); return button; }
bool MainView::init(){ if (!CCLayer::init()) { return false; } size = CCDirector::sharedDirector()->getWinSize(); // dScaleFactorX = size.width / 768, dScaleFactorY = size.height / 1024; // FirstGame = false; // gameSettings = GameSettings::sharedGameSettings(); // ChartBoost SDK Integration // ChartboostX::sharedChartboostX()->setDelegate(this); // this->ShowChartBoost(); // // // int first = CCUserDefault::sharedUserDefault()->getIntegerForKey("first"); // if (first == 1) { // // FirstGame = false; // // }else{ // FirstGame = true; // CCUserDefault::sharedUserDefault()->setIntegerForKey("first", 1); // CCUserDefault::sharedUserDefault()->setBoolForKey("effectSound", true); // CCUserDefault::sharedUserDefault()->setBoolForKey("backgroundSound" , true); // gameSettings->setBackGround(1); // gameSettings->setBackGroundMusic(1); // gameSettings->setCurrentStatus(kTagNonStatus); // gameSettings->setPlayed(false); // // } // // setBackGroundView(gameSettings->getBackground()); // // int nType = gameSettings->getBackgroundMusic(); // // if (!gameSettings->isPlayed()) { // gameSettings->playBackGround(nType); // } // // showMainView(); CCSprite* backgroundView = CCSprite::create("*****@*****.**"); backgroundView->setPosition(ccp(size.width / 2, size.height / 2)); float scale_x = size.width / backgroundView->getContentSize().width; float scale_y = size.height / backgroundView->getContentSize().height; backgroundView->setScaleX(scale_x); backgroundView->setScaleY(scale_y); addChild(backgroundView); CCSprite* spCharacter = CCSprite::create("*****@*****.**"); spCharacter->setPosition(ccp(size.width / 2, size.height / 2)); spCharacter->setScaleX(scale_x); spCharacter->setScaleY(scale_y); addChild(spCharacter); CCSprite* spLogo = CCSprite::create("*****@*****.**"); spLogo->setPosition(ccp(size.width / 2 , getY(size.height, 304, 71) * scale_y)); spLogo->setScaleX(scale_x); spLogo->setScaleY(scale_y); addChild(spLogo); CCSprite* spAdBanner = CCSprite::create("*****@*****.**"); spAdBanner->setPosition(ccp(size.width / 2 , getY(size.height, 50, 910) * scale_y)); spAdBanner->setScaleX(scale_x); spAdBanner->setScaleY(scale_y); addChild(spAdBanner); CCMenuItemImage *facebookButton = CCMenuItemImage::create("*****@*****.**", "*****@*****.**", this, menu_selector(MainView::onClickFacebookButton)); facebookButton->setPosition(ccp(size.width / 2, getY(size.height, 132, 596))); facebookButton->setScaleX(scale_x); facebookButton->setScaleY(scale_y); CCMenuItemImage *guestButton = CCMenuItemImage::create("*****@*****.**", "*****@*****.**", this, menu_selector(MainView::onClickGuestButton)); guestButton->setPosition(ccp(size.width / 2, getY(size.height, 132, 756))); guestButton->setScaleX(scale_x); guestButton->setScaleY(scale_y); CCMenu* menu = CCMenu::create(facebookButton,guestButton,NULL); menu->setPosition(CCPointZero); addChild(menu); return true; }