// on "init" you need to initialize your instance bool ChooseMap::init() { ////////////////////////////// // 1. super init first if (!Layer::init()) { return false; } CCNotificationCenter::sharedNotificationCenter()->addObserver(this, callfuncO_selector(ChooseMap::getArray), "2PMessage", NULL); CCNotificationCenter::sharedNotificationCenter()->addObserver(this, callfuncO_selector(ChooseMap::storymode), "storyMessage", NULL); string path = "images/newGame/"; char *mapName[6] = { "chibi", "guandu", "hanzhong", "hulaoguan", "xuzhou", "yiling"}; Size visibleSize = Director::getInstance()->getVisibleSize(); Vec2 origin = Director::getInstance()->getVisibleOrigin(); //平铺背景 auto *bg = CCSprite::create("images/background/bg_fight.png"); bg->setPosition(ccp(visibleSize.width / 2, visibleSize.height / 2)); this->addChild(bg, -1); //标题 auto *title = CCSprite::create(path + "map_choose.png"); title->setPosition(ccp(visibleSize.width * 0.1, visibleSize.height * 0.9)); this->addChild(title); title->setScale(1.4f, 1.4f); //hint string hints = XMLParser::parseXML("hintStrings", 3); CCLabelTTF *ttf = CCLabelTTF::create(hints, "【朦胧补】水黑体", 35); ttf->setPosition(ccp(visibleSize.width * 0.85, visibleSize.height * 0.87)); this->addChild(ttf); //上一步 auto* last = CCSprite::create(path+"last.png"); last->setScale(1.4f, 1.4f); auto* last_selected = CCSprite::create(path + "last_selected.png"); last_selected->setScale(1.4f, 1.4f); auto *Last = CCMenuItemSprite::create(last, last_selected, last, this, menu_selector(ChooseMap::backto)); Last->setPosition(ccp(visibleSize.width - 200, 50)); //开始游戏 auto* begin = CCSprite::create(path + "begin.png"); begin->setScale(1.4f, 1.4f); auto* begin_selected = CCSprite::create(path + "begin_selected.png"); begin_selected->setScale(1.4f, 1.4f); auto *Begin = CCMenuItemSprite::create(begin, begin_selected, begin, this, menu_selector(ChooseMap::startGame)); Begin->setPosition(ccp(visibleSize.width - 80, 50)); auto *menu = CCMenu::create(Begin, NULL); menu->addChild(Last, NULL); menu->setPosition(Point::ZERO); this->addChild(menu, 2); auto listener = EventListenerTouchOneByOne::create(); listener->setSwallowTouches(true); listener->onTouchBegan = [](Touch* touch, Event* event)->bool{ CCLOG("listener1 onTouchBegan"); auto target = static_cast<Sprite*>(event->getCurrentTarget()); Point locationInNode = target->convertToNodeSpace(touch->getLocation()); Size s = target->getContentSize(); Rect rect = Rect(0, 0, s.width, s.height); if (rect.containsPoint(locationInNode)){//判断触摸点是否在目标的范围内 return true; } else return false; }; listener->onTouchMoved = [](Touch* touch, Event* event){CCLOG("listener1 onTouchMoved"); }; listener->onTouchEnded = [](Touch* touch, Event* event){ CCMenuItemImage *target = static_cast< CCMenuItemImage*>(event->getCurrentTarget()); if (target->isSelected()){ target->unselected(); } else { SimpleAudioEngine::sharedEngine()->playEffect("select.wav",false);//开始播放背景音效,false表示不循环 target->selected(); } }; for (int k = 0; k < 2; k++){ double f; if (k == 0){ f = 0.58; } else { f = 0.23; } for (int j = 0; j < 3; j++){ int i = 3 * k + j; Sprite *sprite = Sprite::create(path + mapName[i] + ".png"); sprite->setScale(0.5f, 0.5f); map[i] = CCMenuItemImage::create(path + mapName[i] + "zhizhan.png", path + mapName[i] + "zhizhan_selected.png"); map[i]->setScale(0.5f, 0.5f); sprite->setPosition(ccp(visibleSize.width * 0.3 * j + 280, visibleSize.height * f - 50)); map[i]->setPosition(ccp(visibleSize.width * 0.3 * j + 280, visibleSize.height * f + 80)); this->addChild(sprite); this->addChild(map[i], 1); _eventDispatcher->addEventListenerWithSceneGraphPriority(listener->clone(), map[i]); } } return true; }
// on "init" you need to initialize your instance bool HelloWorld::init() { bool bRet = false; do { ////////////////////////////////////////////////////////////////////////// // super init first ////////////////////////////////////////////////////////////////////////// CC_BREAK_IF(! CCLayer::init()); ////////////////////////////////////////////////////////////////////////// // add your codes below... ////////////////////////////////////////////////////////////////////////// // 1. Add a menu item with "X" image, which is clicked to quit the program. // Create a "close" menu item with close icon, it's an auto release object. CCMenuItemImage *pCloseItem = CCMenuItemImage::create( "CloseNormal.png", "CloseSelected.png", this, menu_selector(HelloWorld::menuCloseCallback)); CC_BREAK_IF(! pCloseItem); CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize(); CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin(); CCLog("Origin: (%.3f, %.3f)\n", origin.x, origin.y); // Place the menu item bottom-right conner. pCloseItem->setPosition(ccp(origin.x + visibleSize.width - pCloseItem->getContentSize().width/2, origin.y + pCloseItem->getContentSize().height/2)); // Create a menu with the "close" menu item, it's an auto release object. CCMenu* pMenu = CCMenu::create(pCloseItem, NULL); pMenu->setPosition(CCPointZero); CC_BREAK_IF(! pMenu); // Add the menu to HelloWorld layer as a child layer. this->addChild(pMenu, ZORDER_UI); // 2. background m_pSpaceDust = CCSprite::create("bg_front_spacedust.png"); m_pSpaceDust->setPosition(ccp(origin.x + visibleSize.width/2, origin.y + visibleSize.height)); m_pPlanetSunrise = CCSprite::create("bg_planetsunrise.png"); m_pPlanetSunrise->setPosition(ccp(origin.x + visibleSize.width, origin.y + visibleSize.height*0.9f)); m_pGalaxy = CCSprite::create("bg_galaxy.png"); m_pGalaxy->setPosition(ccp(origin.x + visibleSize.width*0.0f, origin.y + visibleSize.height*0.5f)); //m_pSpacialAnomaly = CCSprite::create("bg_spacialanomaly.png"); //m_pSpacialAnomaly->setPosition(ccp(origin.x + visibleSize.width*0.3f, origin.y + visibleSize.height*0.7f)); m_pSpacialAnomaly2 = CCSprite::create("bg_spacialanomaly2.png"); m_pSpacialAnomaly2->setPosition(ccp(origin.x + visibleSize.width, origin.y + visibleSize.height*0.1f)); this->addChild(m_pSpaceDust, ZORDER_BACKGROUND); this->addChild(m_pPlanetSunrise, ZORDER_BACKGROUND); this->addChild(m_pGalaxy, ZORDER_BACKGROUND); //this->addChild(m_pSpacialAnomaly, ZORDER_BACKGROUND); this->addChild(m_pSpacialAnomaly2, ZORDER_BACKGROUND); // 3. player m_pPlayer = CCSprite::create("spaceman_tiny.png"); m_x = origin.x + visibleSize.width/2; m_y = origin.y + GROUND_HEIGHT; m_pPlayer->setPosition(ccp(m_x, m_y)); this->addChild(m_pPlayer, ZORDER_PLAYER); // 4. planets m_pBatchNode = CCSpriteBatchNode::create("planets.pvr.ccz"); this->addChild(m_pBatchNode, ZORDER_INTERACTIVE); CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("planets.plist"); // 5. events this->scheduleUpdate(); this->setTouchEnabled(true); this->schedule(schedule_selector(HelloWorld::gameLogic), 2.0f); // 6. other m_pPlanets = new CCArray; CocosDenshion::SimpleAudioEngine::sharedEngine()->playBackgroundMusic("SpaceGame.wav", true); bRet = true; } while (0); return bRet; }
// on "init" you need to initialize your instance bool MainMenu::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 //CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("MainMenu-ipadhd.plist"); //_menuBatchNode = CCSpriteBatchNode::create("MainMenu-ipadhd.png"); //this->addChild(_menuBatchNode); auto CCSprite * sprite; sprite = CCSprite::create("mainmenucolor.png"); sprite->setRotation(90.0f); sprite->setPosition(ccp(visibleSize.width/2,visibleSize.height/2)); this->addChild(sprite,0); sprite = CCSprite::create("mainmenubull.png"); sprite->setPosition(ccp(visibleSize.width/2-sprite->boundingBox().size.width/2.5,visibleSize.height-sprite->boundingBox().size.height/2)); sprite->setScale(.95f); this->addChild(sprite); //sprite = CCSprite::createWithSpriteFrameName("playButton.png"); //sprite->setPosition(ccp(visibleSize.width/2+sprite->boundingBox().size.width/2,visibleSize.height/2+sprite->boundingBox().size.height/2)); //_menuBatchNode->addChild(sprite); CCMenuItemImage *playbutton = CCMenuItemImage::create("playButton.png","playButton.png",this,menu_selector(MainMenu::playButtonCallback)); playbutton->setPosition(ccp(visibleSize.width/2+playbutton->boundingBox().size.width/2,visibleSize.height/2+playbutton->boundingBox().size.height/2)); CCMenu* playMenu = CCMenu::create(playbutton, NULL); playMenu->setPosition(CCPointZero); this->addChild(playMenu, 1); CCMenuItemImage *quitbutton = CCMenuItemImage::create("quitbutton.png","quitbutton.png",this,menu_selector(MainMenu::menuCloseCallback)); quitbutton->setPosition(ccp(visibleSize.width/2+quitbutton->boundingBox().size.width/2,visibleSize.height/4)); CCMenu* quitMenu = CCMenu::create(quitbutton, NULL); quitMenu->setPosition(CCPointZero); this->addChild(quitMenu, 1); ///////////////////////////// // 3. add your codes below... // add a label shows "Hello World" // create and initialize a label return true; }
//添加顶部按钮 void MenuScene::initButton() { //免费富币 CCMenuItemImage *freeImage = CCMenuItemImage::create("ZF_Shoot_Button_coin.png", "ZF_Shoot_Button_coin1.png",this,menu_selector(MenuScene::menuCloseCallBack)); freeImage->setPosition(ccp(size.width/2, size.height-55)); freeImage->setTag(1); CCActionInterval* scaleTofree1 = CCScaleTo::create(kScaleDuration, 1, 0.95); CCActionInterval* scaleTofree2 = CCScaleTo::create(kScaleDuration, 0.96, 1); CCSequence* sequence1 = CCSequence::create(scaleTofree1,scaleTofree2,NULL); CCActionInterval* rotate1 = CCRepeatForever::create(sequence1); freeImage->runAction(rotate1); //商城 CCMenuItemImage *buyImage = CCMenuItemImage::create("ZF_Shoot_Button_shop.png", "ZF_Shoot_Button_shop1.png",this,menu_selector(MenuScene::menuCloseCallBack)); buyImage->setPosition(ccp(size.width/2+205, size.height-55)); buyImage->setTag(2); CCActionInterval* scaleTobuy1 = CCScaleTo::create(kScaleDuration, 1, 0.95); CCActionInterval* scaleTobuy2 = CCScaleTo::create(kScaleDuration, 0.96, 1); CCSequence* sequence2 = CCSequence::create(scaleTobuy1,scaleTobuy2,NULL); CCActionInterval* rotate2 = CCRepeatForever::create(sequence2); buyImage->runAction(rotate2); //玩家指南 CCMenuItemImage *guideIamge = CCMenuItemImage::create("ZF_Shoot_Button_help.png", "ZF_Shoot_Button_help1.png",this,menu_selector(MenuScene::menuCloseCallBack)); guideIamge->setPosition(ccp(size.width/2+405, size.height-55)); guideIamge->setTag(4); CCActionInterval* scaleTopl1 = CCScaleTo::create(kScaleDuration, 1, 0.95); CCActionInterval* scaleTopl2 = CCScaleTo::create(kScaleDuration, 0.96, 1); CCSequence* sequence4 = CCSequence::create(scaleTopl1,scaleTopl2,NULL); CCActionInterval* rotate4 = CCRepeatForever::create(sequence4); guideIamge->runAction(rotate4); sceneMenu = CCMenu::create(freeImage,buyImage,guideIamge,NULL); sceneMenu->setPosition(CCPointZero); this->addChild(sceneMenu, 1); }
bool CGroupInfoScene::init() { bool bRet = false; do { CC_BREAK_IF(! CCLayer::init()); CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize(); CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin(); // 背景 cocos2d::CCSprite *pSpriteBg = CCSprite::create( PATCH_RES_DIR("bg8.png") ); pSpriteBg->setScale(BG_SCALE); pSpriteBg->setAnchorPoint( ccp(0, 0) ); pSpriteBg->setPosition( ccp(0, 0) ); addChild( pSpriteBg, 0 ); // 关闭按钮 CCMenuItemImage *pCloseItem = CCMenuItemImage::create( PATCH_RES_DIR("close2.png"), PATCH_RES_DIR("close1.png"), this, menu_selector(CGroupInfoScene::menuCloseCallback) ); CC_BREAK_IF( !pCloseItem ); pCloseItem->setAnchorPoint( ccp(0, 0) ); float w = visibleSize.width - pCloseItem->getContentSize().width - 5; float h = 5; pCloseItem->setPosition( ccp(w, h) ); CCMenu *pMenu = CCMenu::create( pCloseItem, NULL ); pMenu->setPosition( CCPointZero ); CC_BREAK_IF( !pMenu ); addChild( pMenu, 1 ); // 后退 { CCMenuItemImage *pBackItem = CCMenuItemImage::create( PATCH_RES_DIR("back.png"), PATCH_RES_DIR("back.png"), this, menu_selector(CGroupInfoScene::menuBackCallback) ); CC_BREAK_IF( !pBackItem ); pBackItem->setAnchorPoint( ccp(0, 0) ); float w = visibleSize.width - pBackItem->getContentSize().width - 5 - pCloseItem->getContentSize().width; float h = 5; pBackItem->setPosition( ccp(w, h) ); CCMenu *pMenu = CCMenu::create( pBackItem, NULL ); pMenu->setPosition( CCPointZero ); CC_BREAK_IF( !pMenu ); addChild( pMenu, 1 ); } bRet = true; // 群名字 CGroupInfo *group = CGameManager::Instance().GetCurGroup(); cocos2d::CCSprite *pGroupSprite = CCSprite::create( PATCH_RES_DIR("group.png") ); pGroupSprite->setScale(BG_SCALE); pGroupSprite->setAnchorPoint( ccp(0, 0) ); pGroupSprite->setPosition( ccp(10, visibleSize.height-pGroupSprite->getContentSize().height-5 ) ); addChild( pGroupSprite, 0 ); CCLabelTTF *labelGroup = CCLabelTTF::create(group->m_Name.c_str(), "Helvetica", 20.0); labelGroup->setAnchorPoint(CCPointZero); labelGroup->setPosition( ccp(pGroupSprite->getContentSize().width+20, visibleSize.height-pGroupSprite->getContentSize().height-5 ) ); addChild( labelGroup, 0 ); // 自己 cocos2d::CCSprite *pSelf = CCSprite::create( PATCH_RES_DIR("group_self.png") ); pSelf->setScale(BG_SCALE); pSelf->setAnchorPoint( ccp(0, 0) ); pSelf->setPosition( ccp(visibleSize.width/2, visibleSize.height-pGroupSprite->getContentSize().height-5 ) ); addChild( pSelf, 0 ); CCLabelTTF *labelSelf = CCLabelTTF::create(CGameManager::Instance().GetUser().c_str(), "Helvetica", 20.0); labelSelf->setAnchorPoint(CCPointZero); labelSelf->setPosition( ccp(visibleSize.width/2+pSelf->getContentSize().width+20, visibleSize.height-pGroupSprite->getContentSize().height-5 ) ); addChild( labelSelf, 0 ); // 加载成员列表 _InitMemberList(); _InitAddGame(); CNetManager::Instance().ResumeProcMsg(); CGameManager::Instance().SetGameWorld( this ); } while (0); return bRet; }
bool ResultLayer::init() { if ( CCLayerColor::initWithColor( ccc4(255, 255, 255, 255) ) ) { CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize(); CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin(); // make the labels of the score and the high score and add them on the layer. int score = Score::getScore(); int highScore = Score::getHighScore(); // CCLog("score = %d", score); // CCLog("high score= %d", highScore); CCString* scoreValue = CCString::createWithFormat("Score: %d", score); CCString* highScoreValue = CCString::createWithFormat("High Score: %d", highScore); // set font. CCLabelTTF* pScoreLabel = CCLabelTTF::create(scoreValue->getCString(), "arial", 48.0); // set the font color pScoreLabel->setColor(ccc3(255, 0, 127)); int widthScoreLabel =pScoreLabel->getContentSize().width; // set font. CCLabelTTF* pHighScoreLabel = CCLabelTTF::create(highScoreValue->getCString(), "arial", 48.0); // set the font color. pHighScoreLabel->setColor(ccc3(255, 0, 127)); // get the width and the height of the high score label. int widthHighScoreLabel =pHighScoreLabel->getContentSize().width; int heightHighScoreLabel = pHighScoreLabel->getContentSize().height; // set the positions of the labels. pScoreLabel->setPosition(ccp(origin.x + visibleSize.width / 2 - widthScoreLabel / 2, origin.y + (int)(visibleSize.height * (1.0 - 0.4)))); pHighScoreLabel->setPosition(ccp(origin.x + visibleSize.width / 2 - widthScoreLabel/ 2 + abs(widthHighScoreLabel - widthScoreLabel) / 2, origin.y + (int)(visibleSize.height * (1.0 - 0.4)) - heightHighScoreLabel - 20)); // add the labels to the layer. this->addChild(pScoreLabel, 1); this->addChild(pHighScoreLabel, 1); // 1. Add a menu item with "X" image, which is clicked to quit the program. // Create a "close" menu item with close icon, it's an auto release object. CCMenuItemImage *pCloseItem = CCMenuItemImage::create( "BackNormal.png", "BackSelected.png", this, menu_selector(ResultLayer::menuBackCallback)); // Place the menu item bottom-right conner. // CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize(); // CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin(); pCloseItem->setPosition(ccp(origin.x + visibleSize.width - pCloseItem->getContentSize().width/2, origin.y + pCloseItem->getContentSize().height/2)); // Create a menu with the "close" menu item, it's an auto release object. CCMenu* pMenu = CCMenu::create(pCloseItem, NULL); pMenu->setPosition(CCPointZero); // Add the menu to SecondWorld layer as a child layer. this->addChild(pMenu, 1); return true; } else { return false; } }
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 GameMenuScene::init() { if ( !CCLayer::init() ) { return false; } CCSize size = CCDirector::sharedDirector()->getWinSize(); CCUserDefault*handler=CCUserDefault::sharedUserDefault(); issound=handler->getBoolForKey("issound",true); //playaudio=new PlayAudio(); // playaudio->bgSound(); CCSprite* bg = CCSprite::create("ui/menubg.jpg"); bg->setPosition( ccp(size.width/2, size.height/2) ); this->addChild(bg, 0,0); //logo CCSprite*logo=CCSprite::create("ui/logo.png"); logo->setAnchorPoint(ccp(0.5,0.5)); this->addChild(logo,3); logo->setPosition(ccp(360,920)); //³õʼ»¯°´Å¥ CCMenuItemImage *newGameItem = CCMenuItemImage::create("ui/start1.png", "ui/start2.png.png",this,menu_selector(GameMenuScene::menuNewGameCallback)); //newGameItem->setScale(0.5); newGameItem->setPosition(ccp(size.width / 2,size.height / 2 - 20)); //newGameItem->setEnabled(false); CCMenuItemImage *continueItem = CCMenuItemImage::create("ui/score1.png", "ui/score2.png",this,menu_selector(GameMenuScene::menuScoreCallback)); //continueItem->setScale(0.5); continueItem->setPosition(ccp(size.width / 2,size.height / 2 - 195)); //continueItem->setEnabled(false); CCMenuItemImage *aboutItem = CCMenuItemImage::create("ui/about1.png", "ui/about2.png",this,menu_selector(GameMenuScene::menuScoreCallback)); //aboutItem->setScale(0.5); aboutItem->setPosition(ccp(size.width / 2,size.height / 2 - 280)); // aboutItem->setEnabled(false); soundItem = CCMenuItemImage::create("ui/ound1.png", "ui/sound2.png",this,menu_selector(GameMenuScene::menuSoundCallback)); //soundItem->setScale(0.5); soundItem->setEnabled(true); soundItem->setPosition(ccp(50,50)); if(issound){ soundItem->setNormalImage(CCSprite::create("ui/sound1.png")); //soundItem->setDisabledImage(CCSprite::create("sound1.png")); }else{ soundItem->setNormalImage(CCSprite::create("ui/sound2.png")); //soundItem->setDisabledImage(CCSprite::create("sound2.png")); } quitItem = CCMenuItemImage::create("ui/back1.png", "ui/back2.png",this,menu_selector(GameMenuScene::menuQuitCallback)); //soundItem->setScale(0.5); quitItem->setEnabled(false); quitItem->setPosition(ccp(670,50)); CCMenu* mainmenu = CCMenu::create(newGameItem,continueItem,soundItem,quitItem,NULL); mainmenu->setPosition(ccp(0,0)); this->addChild(mainmenu,1,3); issound = true; /*SimpleAudioEngine::sharedEngine()->preloadBackgroundMusic("background.mp3"); SimpleAudioEngine::sharedEngine()->setBackgroundMusicVolume(0.5); SimpleAudioEngine::sharedEngine()->playBackgroundMusic("background.mp3", true); */ // this->addChild(pNode); CCMenuItemFont*menuitem1=CCMenuItemFont::create("menuitem1", this,menu_selector(GameMenuScene::menu1CallBack)); menuitem1->setPosition(ccp(300,300)); CCMenu*tempmenu=CCMenu::create(menuitem1,NULL); this->addChild(tempmenu); return true; }
// on "init" you need to initialize your instance bool RectWorld::init() { bool bRet = false; do { ////////////////////////////////////////////////////////////////////////// // super init first ////////////////////////////////////////////////////////////////////////// CC_BREAK_IF(! CCLayer::init()); ////////////////////////////////////////////////////////////////////////// // add your codes below... ////////////////////////////////////////////////////////////////////////// // 1. Add a menu item with "X" image, which is clicked to quit the program. // Create a "close" menu item with close icon, it's an auto release object. CCMenuItemImage *pPauseItem = CCMenuItemImage::itemFromNormalImage("pause.png","pause.png",this,menu_selector(RectWorld::menuPause)); CC_BREAK_IF(! pPauseItem); // Place the menu item bottom-right conner. pPauseItem->setPosition(ccp(22, 22)); // Create a menu with the "close" menu item, it's an auto release object. CCMenu* pMenu = CCMenu::menuWithItems(pPauseItem, NULL); pMenu->setPosition(CCPointZero); pMenu->setTag(6); CC_BREAK_IF(! pMenu); // Add the menu to HelloWorld layer as a child layer. this->addChild(pMenu, 10); // Create a "close" menu item with close icon, it's an auto release object. // Create a menu with the "close" menu item, it's an auto release object. // Get window size and place the label upper. CCSize size = CCDirector::sharedDirector()->getWinSize(); // 3. Add add a splash screen, show the cocos2d splash image. // Place the sprite on the center of the screen MovingBackground *bk = MovingBackground::node(); this->addChild(bk); //CCParticleSystem *particle = ARCH_OPTIMAL_PARTICLE_SYSTEM::particleWithFile("tile.plist"); //particle->setPosition(ccp(_player->getContentSize().width / 2 + size.width / 5 * 3, size.height / 2)); //this->addChild(particle, 1); //this->schedule(schedule_selector(RectWorld::collision)); this->schedule(schedule_selector(RectWorld::gameLogic), 1.0); this->schedule(schedule_selector(RectWorld::update)); //CCTouchDispatcher::sharedDispatcher()->addTargetedDelegate(this,0,true); if (_type == 3) { TimeLayer *timeLayer = TimeLayer :: node(); timeLayer->setInitalTime(60); timeLayer->setTag(4); this->addChild(timeLayer, 3); this->schedule(schedule_selector(RectWorld::clockPassBy), 1.0f); } bRet = true; } while (0); return bRet; }
bool BuyLifeLayer::init() { bool bRet = false; do { CC_BREAK_IF (!CCLayer::init()); CCSprite *p = CCSprite::create(g_sPanelBGImage); CCSize ps = p->getContentSize(); CCSize s = CCDirector::sharedDirector()->getWinSize(); CCScale9Sprite * bg = CCScale9Sprite::create(g_sPanelBGImage,CCRectMake(0,0,ps.width,ps.height),CCRectMake(20,20,ps.width-40,ps.height-40)); this->addChild(bg); bg->setAnchorPoint(ccp(0,0)); bg->setPreferredSize(CCSizeMake(s.width,s.height-beginY)); this->setTouchEnabled(true); this->setTouchPriority(-999); p = CCSprite::create(g_sPanelBGImage2); ps = p->getContentSize(); bg = CCScale9Sprite::create(g_sPanelBGImage2,CCRectMake(0,0,ps.width,ps.height),CCRectMake(20,20,ps.width-40,ps.height-40)); this->addChild(bg); bg->setAnchorPoint(ccp(0,0)); bg->setPreferredSize(CCSizeMake(s.width-20,s.height-20-beginY)); bg->setPositionX(10); bg->setPositionY(10); CCMenuItemImage * back = CCMenuItemImage::create(g_sBackButtonUpBGImage,g_sBackButtonDownBGImage, this, menu_selector(BuyLifeLayer::onCommandBack)); back->setAnchorPoint(ccp(0,1)); MyCCMenu * backMenu = MyCCMenu::create(back,NULL); this->addChild(backMenu); backMenu->setPositionX(28); backMenu->setPositionY(1000-beginY); backMenu->setTouchPriority(-1000); CCSprite * t2 = CCSprite::create(g_sBigLifeBGImage); t2->setAnchorPoint(ccp(0,1)); t2->setPosition(ccp(82,890-beginY)); this->addChild(t2); CCSprite * price2 = CCSprite::create(g_sBuy2BGImage); price2->setAnchorPoint(ccp(0,1)); price2->setPosition(ccp(157,889-beginY)); this->addChild(price2); CCSprite * coin2 = CCSprite::create(g_sGoldBGImage); coin2->setAnchorPoint(ccp(0,1)); coin2->setPosition(ccp(392,891-beginY)); this->addChild(coin2); CCMenuItemImage * buy2 = CCMenuItemImage::create(g_sOkButtonUpBGImage,g_sOkButtonDownBGImage, this, menu_selector(BuyLifeLayer::onCommandBuy2)); buy2->setAnchorPoint(ccp(0,1)); MyCCMenu * buy2Menu = MyCCMenu::create(buy2,NULL); this->addChild(buy2Menu); buy2Menu->setPositionX(534); buy2Menu->setPositionY(907-beginY); buy2Menu->setTouchPriority(-1000); CCSprite * t5 = CCSprite::create(g_sBigLifeBGImage); t5->setAnchorPoint(ccp(0,1)); t5->setPosition(ccp(82,719-beginY)); this->addChild(t5); CCSprite * price5 = CCSprite::create(g_sBuy5BGImage); price5->setAnchorPoint(ccp(0,1)); price5->setPosition(ccp(157,718-beginY)); this->addChild(price5); CCSprite * coin5 = CCSprite::create(g_sGoldBGImage); coin5->setAnchorPoint(ccp(0,1)); coin5->setPosition(ccp(392,723-beginY)); this->addChild(coin5); CCMenuItemImage * buy5 = CCMenuItemImage::create(g_sOkButtonUpBGImage,g_sOkButtonDownBGImage, this, menu_selector(BuyLifeLayer::onCommandBuy5)); buy5->setAnchorPoint(ccp(0,1)); MyCCMenu * buy5Menu = MyCCMenu::create(buy5,NULL); this->addChild(buy5Menu); buy5Menu->setPositionX(534); buy5Menu->setPositionY(736-beginY); buy5Menu->setTouchPriority(-1000); CCSprite * t21 = CCSprite::create(g_sBigLifeBGImage); t21->setAnchorPoint(ccp(0,1)); t21->setPosition(ccp(82,550-beginY)); this->addChild(t21); CCSprite * price21 = CCSprite::create(g_sBuy21BGImage); price21->setAnchorPoint(ccp(0,1)); price21->setPosition(ccp(152,550-beginY)); this->addChild(price21); CCSprite * coin21 = CCSprite::create(g_sGoldBGImage); coin21->setAnchorPoint(ccp(0,1)); coin21->setPosition(ccp(439,553-beginY)); this->addChild(coin21); CCMenuItemImage * buy21 = CCMenuItemImage::create(g_sOkButtonUpBGImage,g_sOkButtonDownBGImage, this, menu_selector(BuyLifeLayer::onCommandBuy21)); buy21->setAnchorPoint(ccp(0,1)); MyCCMenu * buy21Menu = MyCCMenu::create(buy21,NULL); this->addChild(buy21Menu); buy21Menu->setPositionX(534); buy21Menu->setPositionY(569-beginY); buy21Menu->setTouchPriority(-1000); CCSprite * t60 = CCSprite::create(g_sBigLifeBGImage); t60->setAnchorPoint(ccp(0,1)); t60->setPosition(ccp(82,358-beginY)); this->addChild(t60); CCSprite * price60 = CCSprite::create(g_sBuy60BGImage); price60->setAnchorPoint(ccp(0,1)); price60->setPosition(ccp(163,367-beginY)); this->addChild(price60); CCSprite * coin60 = CCSprite::create(g_sGoldBGImage); coin60->setAnchorPoint(ccp(0,1)); coin60->setPosition(ccp(455,364-beginY)); this->addChild(coin60); CCMenuItemImage * buy60 = CCMenuItemImage::create(g_sOkButtonUpBGImage,g_sOkButtonDownBGImage, this, menu_selector(BuyLifeLayer::onCommandBuy60)); buy60->setAnchorPoint(ccp(0,1)); MyCCMenu * buy60Menu = MyCCMenu::create(buy60,NULL); this->addChild(buy60Menu); buy60Menu->setPositionX(534); buy60Menu->setPositionY(378-beginY); buy60Menu->setTouchPriority(-1000); CCSprite * t130 = CCSprite::create(g_sBigLifeBGImage); t130->setAnchorPoint(ccp(0,1)); t130->setPosition(ccp(82,173-beginY)); this->addChild(t130); CCSprite * price130 = CCSprite::create(g_sBuy130BGImage); price130->setAnchorPoint(ccp(0,1)); price130->setPosition(ccp(162,175-beginY)); this->addChild(price130); CCSprite * coin130 = CCSprite::create(g_sGoldBGImage); coin130->setAnchorPoint(ccp(0,1)); coin130->setPosition(ccp(480,177-beginY)); this->addChild(coin130); CCMenuItemImage * buy130 = CCMenuItemImage::create(g_sOkButtonUpBGImage,g_sOkButtonDownBGImage, this, menu_selector(BuyLifeLayer::onCommandBuy130)); buy130->setAnchorPoint(ccp(0,1)); MyCCMenu * buy130Menu = MyCCMenu::create(buy130,NULL); this->addChild(buy130Menu); buy130Menu->setPositionX(534); buy130Menu->setPositionY(193-beginY); buy130Menu->setTouchPriority(-1000); CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this,this->getTouchPriority(),true); bRet = true; }while(0); return bRet; }
// on "init" you need to initialize your instance bool HelloWorld::init() { bool bRet = false; do { ////////////////////////////////////////////////////////////////////////// // super init first ////////////////////////////////////////////////////////////////////////// CC_BREAK_IF(! CCLayerColor::initWithColor( ccc4(255,255,255,255) ) ); ////////////////////////////////////////////////////////////////////////// // add your codes below... ////////////////////////////////////////////////////////////////////////// // 1. Add a menu item with "X" image, which is clicked to quit the program. // Create a "close" menu item with close icon, it's an auto release object. CCMenuItemImage *pCloseItem = CCMenuItemImage::create( "CloseNormal.png", "CloseSelected.png", this, menu_selector(HelloWorld::menuCloseCallback)); CC_BREAK_IF(! pCloseItem); // Place the menu item bottom-right conner. CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize(); CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin(); pCloseItem->setPosition(ccp(origin.x + visibleSize.width - pCloseItem->getContentSize().width/2, origin.y + pCloseItem->getContentSize().height/2)); // Create a menu with the "close" menu item, it's an auto release object. CCMenu* pMenu = CCMenu::create(pCloseItem, NULL); pMenu->setPosition(CCPointZero); CC_BREAK_IF(! pMenu); // Add the menu to HelloWorld layer as a child layer. this->addChild(pMenu, 1); ///////////////////////////// // 2. add your codes below... CCSprite *player = CCSprite::create("Player.png", CCRectMake(0, 0, 27, 40) ); player->setPosition( ccp(origin.x + player->getContentSize().width/2, origin.y + visibleSize.height/2) ); this->addChild(player); this->schedule( schedule_selector(HelloWorld::gameLogic), 1.0 ); this->setTouchEnabled(true); _targets = new CCArray; _projectiles = new CCArray; // use updateGame instead of update, otherwise it will conflit with SelectorProtocol::update // see http://www.cocos2d-x.org/boards/6/topics/1478 this->schedule( schedule_selector(HelloWorld::updateGame) ); CocosDenshion::SimpleAudioEngine::sharedEngine()->playBackgroundMusic("background-music-aac.wav", true); bRet = true; } while (0); return bRet; }
bool IntroScene::init(bool firstTime) { ////////////////////////////// // 1. super init first if ( !CCLayer::init() ) { return false; } //navigation _firstTime = firstTime; CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize(); CCMenuItemImage* nextImgItem = CCMenuItemImage::create( "Interfeiss/buttons/arrow_r_btn0001.png", "Interfeiss/buttons/arrow_r_btn0002.png", this, menu_selector(IntroScene::btNextCallback)); CCMenuItemImage* prevImgItem = CCMenuItemImage::create( "Interfeiss/buttons/arrow_l_btn0001.png", "Interfeiss/buttons/arrow_l_btn0002.png", this, menu_selector(IntroScene::btPrevCallback)); CCMenuItemImage* closeItem = CCMenuItemImage::create( "Interfeiss/buttons/close_btn0001.png", "Interfeiss/buttons/close_btn0002.png", this, menu_selector(IntroScene::btCloseCallback)); _images[0] = "Interfeiss/intro/scene_1.png"; _images[1] = "Interfeiss/intro/scene_2.png"; _images[2] = "Interfeiss/intro/scene_3.png"; _images[3] = "Interfeiss/intro/scene_4.png"; _images[4] = "Interfeiss/intro/scene_5.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)); addChild(_activeImage,0); _activeImg = 0; addChild(nextMenu,1); addChild(prevMenu,2); // addChild(closeMenu,3); return true; }
bool GameMenu::init() { if ( !CCLayer::init() ) { return false; } CCSize size = CCDirector::sharedDirector()->getWinSize(); //初始化背景 CCSprite* bg = CCSprite::create("bg.png"); bg->setScale(0.5); bg->setPosition( ccp(size.width/2, size.height/2) ); this->addChild(bg, 0,0); //初始化背景星球 CCSprite*bgstar = CCSprite::create("moon.png"); bgstar->setAnchorPoint(ccp(0.5,0)); bgstar->setScale(0.5); bgstar->setPosition(ccp(size.width/3 * 2, 0)); this->addChild(bgstar,1,1); //初始化标题 CCNode *title = CCNode::create(); title->setContentSize(CCSizeMake(size.width - 40,50)); CCSprite *ptmLabel = CCSprite::create("meowstar.png"); ptmLabel->setScale(0.5); ptmLabel->setPosition( ccp(0,30) ); title->addChild(ptmLabel); CCSprite *ptbLabel = CCSprite::create("battle.png"); ptbLabel->setScale(0.5); ptbLabel->setPosition( ccp(0,-30) ); title->addChild(ptbLabel); title->setPosition(ccp(size.width / 2, size.height - 80)); this->addChild(title,2,2); //初始化按钮 CCMenuItemImage *newGameItem = CCMenuItemImage::create("newGameA.png", "newGameB.png",this,menu_selector(GameMenu::menuNewGameCallback)); newGameItem->setScale(0.5); newGameItem->setPosition(ccp(size.width / 2,size.height / 2 - 20)); newGameItem->setEnabled(false); CCMenuItemImage *continueItem = CCMenuItemImage::create("continueA.png", "continueB.png",this,menu_selector(GameMenu::menuContinueCallback)); continueItem->setScale(0.5); continueItem->setPosition(ccp(size.width / 2,size.height / 2 - 80)); continueItem->setEnabled(false); CCMenuItemImage *aboutItem = CCMenuItemImage::create("aboutA.png", "aboutB.png",this,menu_selector(GameMenu::menuAboutCallback)); aboutItem->setScale(0.5); aboutItem->setPosition(ccp(size.width / 2,size.height / 2 - 140)); aboutItem->setEnabled(false); soundItem = CCMenuItemImage::create("sound-on-A.png", "sound-on-B.png",this,menu_selector(GameMenu::menuSoundCallback)); soundItem->setScale(0.5); soundItem->setEnabled(false); soundItem->setPosition(ccp(40,40)); //使用按钮创建菜单 CCMenu* mainmenu = CCMenu::create(newGameItem,continueItem,aboutItem,soundItem,NULL); mainmenu->setPosition(ccp(0,0)); this->addChild(mainmenu,1,3); //初始化声音部分 issound = true;//是否开启声音参数 SimpleAudioEngine::sharedEngine()->preloadBackgroundMusic( CCFileUtils::sharedFileUtils()->fullPathFromRelativePath("background.mp3") ); SimpleAudioEngine::sharedEngine()->setBackgroundMusicVolume(0.5); SimpleAudioEngine::sharedEngine()->playBackgroundMusic(std::string(CCFileUtils::sharedFileUtils()->fullPathFromRelativePath("background.mp3")).c_str(), true); return true; }
// on "init" you need to initialize your instance bool HelloWorld::init() { bool bRet = false; do { ////////////////////////////////////////////////////////////////////////// // super init first ////////////////////////////////////////////////////////////////////////// CC_BREAK_IF(! CCLayer::init()); ////////////////////////////////////////////////////////////////////////// // add your codes below... ////////////////////////////////////////////////////////////////////////// CC_BREAK_IF(! CCLayerColor::initWithColor(ccc4(255, 255, 255, 255))); // 1. Add a menu item with "X" image, which is clicked to quit the program. //Background CCSize size = CCDirector::sharedDirector()->getWinSize(); CCSprite *backgroud = CCSprite::create("MainMenu.png"); CC_BREAK_IF(! backgroud); backgroud->setPosition(ccp(size.width / 2, size.height / 2)); this->addChild(backgroud); // 2. Add a label shows "Hello World". // Create a label and initialize with string "Hello World". // const char *title = "俄罗斯方块"; // const char *startGame = "开始游戏"; // const char *gameSet = "游戏设置"; // const char *score = "游戏得分"; // const char *gameOver = "游戏结束"; /* const char *title = "TetrisGame";*/ // const char *startGame = "startGame"; // const char *gameSet = "gameSet"; // const char *score = "score"; // const char *gameOver = "gameEnd"; // CCLabelTTF* pLabel = CCLabelTTF::create(title, "Arial", 36); // CC_BREAK_IF(! pLabel); // // // Get window size and place the label upper. // pLabel->setPosition(ccp(size.width / 2, size.height * 4 / 5)); // // pLabel->setColor(ccc3(255, 255, 255)); // // Add the label to HelloWorld layer as a child layer. // this->addChild(pLabel, 1); // 加入4个行走方向的控制菜单 // CCMenuItem *first = CCMenuItemFont::create(startGame, this, menu_selector(HelloWorld::menuCallbackStart)); // CCMenuItem *second = CCMenuItemFont::create(gameSet, this, menu_selector(HelloWorld::menuCallbackSet)); // CCMenuItem *third = CCMenuItemFont::create(score, this, menu_selector(HelloWorld::menuCallbackScore)); // CCMenuItem *forth = CCMenuItemFont::create(gameOver, this, menu_selector(HelloWorld::menuCallbackEnd)); // CCMenu *menu = CCMenu::create(first, second, third, forth, NULL); // menu->setColor(ccc3(255, 255, 255)); // 为了查找方便,给菜单项设置tag //down->setTag(kDown); //left->setTag(kLeft); //right->setTag(kRight); //up->setTag(kUp); // 菜单项按间距垂直排列 // menu->alignItemsVerticallyWithPadding(50); // this->addChild(menu CCMenuItemImage *play = CCMenuItemImage::create( "play.png", "play.png", this, menu_selector(HelloWorld::menuCallbackStart)); play->setAnchorPoint(ccp(0, 0)); play->setPosition(ccp(size.width / 4, (size.height * 2) / 5)); CCMenuItemImage *end = CCMenuItemImage::create( "end.png", "end.png", this, menu_selector(HelloWorld::menuCallbackEnd)); end->setAnchorPoint(ccp(0, 0)); end->setPosition(ccp(size.width / 4, (size.height * 2) / 7)); CCMenu *menu = CCMenu::create(play, end, NULL); menu->setAnchorPoint(ccp(0, 0)); menu->setPosition(ccp(0, 0)); this->addChild(menu); bRet = true; } while (0); return bRet; }
bool Combat::init(int monsterType) { CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize(); CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin(); // Switch BGM AudioPlayer::PlayCombatBGM(); //角色创建 cplayer = CPlayer::create(); cplayer->setPlayer(); this->addChild(cplayer); monster = Monster::create(); monster->setMonster(monsterType); this->addChild(monster); //血条创建 playerblood = Blood::create(); playerblood->setBloodSlider(); playerblood->setSliderPosition(ccp(150,visibleSize.height-50)); playerblood->setTotalBlood(cplayer->healthPoint); playerblood->setCurrentBlood(cplayer->currentHp); monsterblood = Blood::create(); monsterblood->setBloodSlider(); monsterblood->setSliderPosition(ccp(visibleSize.width-150,visibleSize.height-50)); monsterblood->setTotalBlood(monster->healthPoint); monsterblood->setCurrentBlood(monster->currentHp); this->addChild(playerblood); this->addChild(monsterblood); //等级与当前血量label /*等级*/ char level[10],blood[10]; sprintf(level,LEVEL_LBL,cplayer->level); plevelLabel = CCLabelTTF::create(level, LABEL_FONT,20); plevelLabel->setPosition(ccp(60,visibleSize.height-20)); this->addChild(plevelLabel,2); sprintf(level,LEVEL_LBL,monster->level); mlevelLabel = CCLabelTTF::create(level, LEVEL_LBL,20); mlevelLabel->setPosition(ccp(visibleSize.width-60,visibleSize.height-20)); this->addChild(mlevelLabel,2); /*血量*/ sprintf(blood,HEALTH_LBL,cplayer->currentHp); pbloodLabel = CCLabelTTF::create(blood,LABEL_FONT,20); pbloodLabel->setPosition(ccp(240,visibleSize.height-20)); this->addChild(pbloodLabel,2); sprintf(blood,HEALTH_LBL,monster->currentHp); mbloodLabel = CCLabelTTF::create(blood,LABEL_FONT,20); mbloodLabel->setPosition(ccp(visibleSize.width-240,visibleSize.height-20)); this->addChild(mbloodLabel,2); //按钮创建 playerbutton = AbilityButton::create(); monsterbutton = AbilityButton::create(); playerbutton->CreateButton(); playerbutton->setButtonPosition(ccp(50,50)); playerbutton->updateDamage(cplayer->level); monsterbutton->CreateButton(); monsterbutton->setButtonPosition(ccp(480,50)); monsterbutton->LockButtonTouch(); monsterbutton->updateDamage(monster->level); if (monsterType==0) { CCMenuItemImage *pCloseItem = CCMenuItemImage::create(RUN_BTN_IMG_PATH,RUN_DOWN_BTN_IMG_PATH,this,menu_selector(Combat::exitCombat)); pCloseItem->setPosition(ccp(visibleSize.width/2,50)); CCMenu* pMenu = CCMenu::create(pCloseItem,NULL); pMenu->setPosition(CCPointZero); this->addChild(pMenu); } this->addChild(playerbutton); this->addChild(monsterbutton); //游戏结束Label winLabel = CCLabelTTF::create(YOU_WIN_LBL, LABEL_FONT, 80); loseLabel = CCLabelTTF::create(YOU_LOSE_LBL, LABEL_FONT, 80); winLabel->setPosition(ccp(visibleSize.width/2-20,visibleSize.height/2+20)); loseLabel->setPosition(ccp(visibleSize.width/2-20,visibleSize.height/2+20)); winLabel->setVisible(false); loseLabel->setVisible(false); this->addChild(winLabel); this->addChild(loseLabel); //schedule监听,每帧刷新一次 this->scheduleUpdate(); //订阅播放动画的消息 CCNotificationCenter::sharedNotificationCenter()->addObserver(this,callfuncO_selector(Combat::playAnimation),ANIMATION_MSG,NULL); //订阅游戏结束 CCNotificationCenter::sharedNotificationCenter()->addObserver(this,callfuncO_selector(Combat::gameOver),GAME_OVER_MSG,NULL); return true; }
TanSuoLayer::TanSuoLayer() { m_nFontSize = 24; m_nMaxCountDestroy = 3; m_bIsJieFeng = false; m_nSelectProId = -1; mBg = BaseSprite::create("xunbao_bg.png"); addChild(mBg); mBg->setPosition(ccp(mWinSize.width/2, mBg->getContentSize().height/2)); mMainMenu = CCMenu::create(); mBg->addChild(mMainMenu, 10); mMainMenu->setPosition(ccp(0,0)); CCMenuItemImage *yijian = CCMenuItemImage::create( "xunbao_anniu_yijianxunbao.png", "xunbao_anniu_yijianxunbao_select.png", this, menu_selector(TanSuoLayer::menuItemClicked_TanSuo)); mMainMenu->addChild(yijian, 0, Tag_MenuItem_YiJianTanSuo); yijian->setPosition(ccp(548,mBg->getContentSize().height-674)); Button *tansuo = Button::create(); tansuo->loadTextures("xunbao_anniu_xunbao.png","xunbao_anniu_xunbao_select.png","xunbao_anniu_xunbao_select.png",UI_TEX_TYPE_LOCAL); /*CCMenuItemImage *tansuo = CCMenuItemImage::create( "xunbao_anniu_xunbao.png", "xunbao_anniu_xunbao_select.png", this, menu_selector(TanSuoLayer::menuItemClicked_TanSuo));*/ tansuo->addTouchEventListener(this,SEL_TouchEvent(&TanSuoLayer::clickXunBao)); UILayer* layer = UILayer::create(); layer->ignoreAnchorPointForPosition(false); layer->setContentSize(tansuo->getContentSize()); layer->setAnchorPoint(ccp(0.5,0.5)); layer->addWidget(tansuo); layer->setPosition(320,mBg->getContentSize().height-674);//以前cpp(x,y) 现在左边 都是Point 比如颜色 ccWHITE 也改成了Color3B::WHITE mBg->addChild(layer); tansuo->setPosition(ccp(tansuo->getContentSize().width / 2 , tansuo->getContentSize().height / 2)); m_sXunBaoSpr = CCSprite::create("xunbao_anniu_xunbao_xiaoguo.png"); m_sXunBaoSpr->setPosition(ccp(320,mBg->getContentSize().height-674)); mBg->addChild(m_sXunBaoSpr); m_sXunBaoSpr->runAction(CCRepeatForever::create(CCSequence::create(CCFadeOut::create(1.0f),CCFadeIn::create(1.0f),NULL))); //mMainMenu->addChild(tansuo, 0, Tag_MenuItem_TanSuo); //tansuo->setPosition(ccp(320,mBg->getContentSize().height-674)); { CCMenuItemImage *jiefen = CCMenuItemImage::create( "xunbao_anniu_jiechufengyin.png", "xunbao_anniu_jiechufengyin_select.png", this, menu_selector(TanSuoLayer::menuItemClicked_TanSuo)); mMainMenu->addChild(jiefen, 0, Tag_MenuItem_JieFen); jiefen->setPosition(ccp(320,mBg->getContentSize().height-437)); jiefen->setVisible(false); CCSprite *img = CCSprite::create("xunbao_anniu_jiechufengyin_xiaoguo.png"); jiefen->addChild(img); img->setPosition(ccp(jiefen->getContentSize().width/2, jiefen->getContentSize().height/2)); img->runAction(CCRepeatForever::create(CCSequence::create( CCFadeTo::create(1, 50), CCFadeTo::create(1, 255), NULL))); } mMainMenu->setVisible(false); //title CCLabelTTF *tilte = CCLabelTTF::create(LFStrings::getValue("XunBaoShuoMing").c_str(), fontStr_kaiti, m_nFontSize); mBg->addChild(tilte); tilte->setColor(fonColor_PuTong); tilte->setPosition(ccp(mBg->getContentSize().width/2, mBg->getContentSize().height-110)); //2 CCLabelTTF *la1 = CCLabelTTF::create(LFStrings::getValue("XunBaoJieFeng").c_str(), fontStr_kaiti, m_nFontSize); mBg->addChild(la1); la1->setAnchorPoint(ccp(0, 0.5)); la1->setColor(fonColor_CiYao); la1->setPosition(ccp(134, mBg->getContentSize().height-140)); CCLabelTTF *la2 = CCLabelTTF::create((LFStrings::getValue("shenbing")+LFStrings::getValue("zhuangbei")).c_str() , fontStr_kaiti, m_nFontSize); la1->addChild(la2); la2->setColor(ImageManager::getManager()->getShowColor(ZhuangbeiColour_Chuanqi, false, false)); la2->setPosition(ccp(la1->getContentSize().width+la2->getContentSize().width/2, la1->getContentSize().height/2)); la1->setPositionX((mBg->getContentSize().width-la1->getContentSize().width-la2->getContentSize().width)/2); }
// 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)); CCLOG("%.2f,%.2f\n",pMenu->getContentSize().width,pMenu->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); return true; }
bool MPJonsMapLayer::init() { CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize(); CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin(); // Exit button CCMenuItemImage *backItem = CCMenuItemImage::create( "CloseNormal.png", "CloseSelected.png", this, menu_selector(MPJonsMapLayer::titleCallback)); backItem->setPosition(ccp(origin.x + visibleSize.width - backItem->getContentSize().width/2 , origin.y + backItem->getContentSize().height/2)); CCMenu* menu = CCMenu::create(backItem, NULL); menu->setPosition(CCPointZero); this->addChild(menu, 1); // Screen Title CCLabelTTF* label = CCLabelTTF::create("A Map Scene", "Arial", TITLE_FONT_SIZE); label->setPosition(ccp(origin.x + visibleSize.width/2, origin.y + visibleSize.height - label->getContentSize().height)); this->addChild(label, 1); // Tile Map CCTMXTiledMap *map = CCTMXTiledMap::create("JonMap/Random.tmx"); this->addChild(map, 0); MPJonsMapLayer::antiAliasMap(map); map->setAnchorPoint(ccp(.5, .5)); map->setPosition(ccp(visibleSize.width * .5, visibleSize.height * .5)); map->setScale(.5); CCTMXLayer* layer = map->layerNamed("Background"); assert(layer != NULL); CCSize mapSize = map->getContentSize(); float mapHeight = mapSize.height; float mapWidth = mapSize.width; // player->setPosition(ccp(positionX,positionY)); /* CCSprite *tile = layer->tileAt(ccp(5,6)); assert(tile != NULL); layer->removeTileAt(ccp(5, 6)); CCActionInterval* actionBy = CCMoveBy::create(2, ccp(visibleSize.width * .5, visibleSize.height * .5)); map->runAction(actionBy); CCActionInterval* action = CCScaleBy::create(2, 2); map->runAction(action); */ /* CCSize s = layer->getLayerSize(); for (int x = 2; x < s.width; x++) { for (int y = 0; y < s.height; y++) { layer->removeTileAt(ccp(x, y)); } } */ return true; }
void TetrisGameLayer::startGame(){ G_current_HandleType = new LongBlock_Type(); G_current_HandleType->init(); CCSize size = CCDirector::sharedDirector()->getWinSize(); //控制按钮// CCMenuItemImage * left = CCMenuItemImage::create("left.png", "left.png"); left->setTarget(this, menu_selector(TetrisGameLayer::leftButtonPressed)); left->setScale(0.5); CCMenuItemImage * right = CCMenuItemImage::create("right.png", "right.png"); right->setTarget(this, menu_selector(TetrisGameLayer::rightButtonPressed)); left->setAnchorPoint(ccp(0, 0)); right->setAnchorPoint(ccp(0, 0)); right->setScale(0.5); right->setPosition(ccp(size.width/2+size.width/4, 0)); CCMenuItemImage * down = CCMenuItemImage::create("down.png", "down.png"); down->setTarget(this, menu_selector(TetrisGameLayer::downButtonPressed)); down->setAnchorPoint(ccp(0,0)); down->setScale(0.5); down->setPosition(ccp(size.width/2 -100,0)); down->setOpacity(0.7*255); CCMenu * menu = CCMenu::create(left,down,right, NULL); menu->setAnchorPoint(ccp(0, 0)); menu->setPosition(ccp(0, 0)); this->addChild(menu); }
void MainGameScene::makeResumeDaialog() { CCSize winSize = CCDirector::sharedDirector()->getWinSize(); //CCSpriteで作ると、タッチ判定無効とかめんどくさいからBGもMenuItemで作る CCMenuItemImage* resumeBG = CCMenuItemImage::create("logo_Info2.png","logo_Info2.png"); resumeBG->setScale(0.7); resumeBG->setPosition(ccp(winSize.width * 0.5, winSize.height * 0.5)); resumeBG->setEnabled(false); CCSize pResumeBGSize = resumeBG->getContentSize(); CCLabelTTF* resumeLabel; resumeLabel = CCLabelTTF::create(NKLocalizedString::LocalizedString("resume", "RESUME"), "Copperplate", 60.0); resumeLabel->setColor(ccc3(0, 0, 0)); resumeLabel->setPosition(ccp(pResumeBGSize.width * 0.5 ,pResumeBGSize.height * 0.7)); resumeBG->addChild(resumeLabel); CCMenuItemImage* titleItem = CCMenuItemImage::create("button1.png","button1.png" ,this, menu_selector(MainGameScene::tapTitleButton)); titleItem->setPosition(ccp(winSize.width * 0.3, winSize.height * 0.47)); CCLabelTTF* titleLabel; titleLabel = CCLabelTTF::create("TITLE", "Arial", 30.0); CCSize pTitleItemSize = titleItem->getContentSize(); titleLabel->setPosition(ccp(pTitleItemSize.width / 2 ,pTitleItemSize.height / 2)); titleItem->addChild(titleLabel); titleItem->setScale(0.8); CCMenuItemImage* returnGameItem = CCMenuItemImage::create("button2.png","button2.png" ,this, menu_selector(MainGameScene::returnMainGame)); returnGameItem->setPosition(ccp(winSize.width * 0.7, winSize.height * 0.47)); CCLabelTTF* returnGameLabel; returnGameLabel = CCLabelTTF::create("CANCEL", "Arial", 30.0); CCSize pReturnGameSize = returnGameItem->getContentSize(); returnGameLabel->setPosition(ccp(pReturnGameSize.width / 2 ,pReturnGameSize.height / 2)); returnGameItem->addChild(returnGameLabel); returnGameItem->setScale(0.8); CCMenuItemImage* retryGameItem = CCMenuItemImage::create("button3.png","button3.png" ,this, menu_selector(MainGameScene::doRetry)); retryGameItem->setPosition(ccp(winSize.width * 0.5, winSize.height * 0.39)); CCLabelTTF* retryGameLabel; retryGameLabel = CCLabelTTF::create("RETRY", "Arial", 30.0); CCSize pRetryGameSize = retryGameItem->getContentSize(); retryGameLabel->setPosition(ccp(pRetryGameSize.width / 2 ,pRetryGameSize.height / 2)); retryGameItem->addChild(retryGameLabel); retryGameItem->setScale(0.8); CCMenu* resumeDialog = CCMenu::create(resumeBG, titleItem, returnGameItem,retryGameItem,NULL); resumeDialog->setPosition(CCPointZero); resumeDialog->setTag(tagResumeDialog); resumeDialog->setOpacity(0); resumeDialog->setZOrder(Z_ORDER_RESUME_DIALOG); resumeDialog->setEnabled(false); this->addChild(resumeDialog); }
// on "init" you need to initialize your instance bool HelloWorld::init() { bool bRet = false; do { ////////////////////////////////////////////////////////////////////////// // super init first ////////////////////////////////////////////////////////////////////////// CC_BREAK_IF(! CCLayer::init()); ////////////////////////////////////////////////////////////////////////// // add your codes below... ////////////////////////////////////////////////////////////////////////// // 1. Add a menu item with "X" image, which is clicked to quit the program. // Create a "close" menu item with close icon, it's an auto release object. CCMenuItemImage *pCloseItem = CCMenuItemImage::create( "CloseNormal.png", "CloseSelected.png", this, menu_selector(HelloWorld::menuCloseCallback)); CC_BREAK_IF(! pCloseItem); // Place the menu item bottom-right conner. pCloseItem->setPosition(ccp(CCDirector::sharedDirector()->getWinSize().width - 20, 20)); // Create a menu with the "close" menu item, it's an auto release object. CCMenu* pMenu = CCMenu::create(pCloseItem, NULL); pMenu->setPosition(CCPointZero); CC_BREAK_IF(! pMenu); // Add the menu to HelloWorld layer as a child layer. this->addChild(pMenu, 1); // 2. Add a label shows "Hello World". // Create a label and initialize with string "Hello World". CCLabelTTF* pLabel = CCLabelTTF::create("Hello World", "Arial", 24); CC_BREAK_IF(! pLabel); // Get window size and place the label upper. CCSize size = CCDirector::sharedDirector()->getWinSize(); pLabel->setPosition(ccp(size.width / 2, size.height - 50)); // Add the label to HelloWorld layer as a child layer. this->addChild(pLabel, 1); // 3. Add add a splash screen, show the cocos2d splash image. CCSprite* pSprite = CCSprite::create("HelloWorld.png"); CC_BREAK_IF(! pSprite); // Place the sprite on the center of the screen pSprite->setPosition(ccp(size.width/2, size.height/2)); // Add the sprite to HelloWorld layer as a child layer. this->addChild(pSprite, 0); bRet = true; } while (0); return bRet; }
void LoginLayer::option(CCObject* pSender) { for (int i = 0; i < 5; ++i) { CCSprite* spBtnBg = (CCSprite*)this->getChildByTag(SVRBG_SELECT + i); spBtnBg->setVisible(false); CCLabelTTF* svrName = (CCLabelTTF*)this->getChildByTag(SVR_NAME + i); svrName->setColor(ccc3(227, 168, 105)); svrName->setScale(1); } CCMenuItemImage* pItemImage = (CCMenuItemImage*)pSender; switch (pItemImage->getTag() - SVRBG_NORMAL) { case 0: { NetConnection* pNetConnection = NetConnection::getInstance(); pNetConnection->setUUU(HTTP_SERVER_URL); CCUserDefault::sharedUserDefault()->setIntegerForKey(LOGIN_SERVER_KEY, 0); CCUserDefault::sharedUserDefault()->flush(); m_pGameState->setServerId(0); CCSprite* spBtnBg = (CCSprite*)this->getChildByTag(SVRBG_SELECT); spBtnBg->setVisible(true); CCLabelTTF* svrName = (CCLabelTTF*)this->getChildByTag(SVR_NAME); svrName->setColor(ccc3(255, 215, 0)); svrName->setScale(1.1); } break; case 1: { NetConnection* pNetConnection = NetConnection::getInstance(); pNetConnection->setUUU(HTTP_SERVER_URL1); CCUserDefault::sharedUserDefault()->setIntegerForKey(LOGIN_SERVER_KEY, 1); CCUserDefault::sharedUserDefault()->flush(); m_pGameState->setServerId(1); CCSprite* spBtnBg = (CCSprite*)this->getChildByTag(SVRBG_SELECT + 1); spBtnBg->setVisible(true); CCLabelTTF* svrName = (CCLabelTTF*)this->getChildByTag(SVR_NAME + 1); svrName->setColor(ccc3(255, 215, 0)); svrName->setScale(1.1); } break; case 2: { CCSprite* spBtnBg = (CCSprite*)this->getChildByTag(SVRBG_SELECT+2); spBtnBg->setVisible(true); CCLabelTTF* svrName = (CCLabelTTF*)this->getChildByTag(SVR_NAME+2); svrName->setColor(ccc3(255, 215, 0)); svrName->setScale(1.1); } break; case 3: { CCSprite* spBtnBg = (CCSprite*)this->getChildByTag(SVRBG_SELECT+3); spBtnBg->setVisible(true); CCLabelTTF* svrName = (CCLabelTTF*)this->getChildByTag(SVR_NAME+2); svrName->setColor(ccc3(255, 215, 0)); svrName->setScale(1.1); } break; case 4: { CCSprite* spBtnBg = (CCSprite*)this->getChildByTag(SVRBG_SELECT+4); spBtnBg->setVisible(true); CCLabelTTF* svrName = (CCLabelTTF*)this->getChildByTag(SVR_NAME+2); svrName->setColor(ccc3(255, 215, 0)); svrName->setScale(1.1); } break; default: CCAssert(false, "invalid server"); break; } }
//添加3个选关按钮 void MenuScene::initSceneChoose() { float pngWidth = 362.0; float xSpace = (size.width - pngWidth*3)/4; //添加练习场菜单项 CCActionInterval* scaleToex1 = CCScaleTo::create(kScaleDuration1, kScaleRitio, kScaleRitio-0.03); CCActionInterval* scaleToex2 = CCScaleTo::create(kScaleDuration1, kScaleRitio-0.02, kScaleRitio); CCSequence* sequence1 = CCSequence::create(scaleToex1,scaleToex2,NULL); CCActionInterval* rotate1 = CCRepeatForever::create(sequence1); CCMenuItemImage *exersize = CCMenuItemImage::create("ZF_Shoot_Button_lxc.png", "ZF_Shoot_Button_lxc.png", this, menu_selector(MenuScene::menuChoseScene)); exersize->setPosition(ccp(xSpace+pngWidth/2, size.height/2)); exersize->setScale(kScaleRitio); exersize->setTag(kExserciseTag); exersize->runAction(rotate1); //添加平民场菜单项 CCActionInterval* scaleTope1 = CCScaleTo::create(kScaleDuration1, kScaleRitio, kScaleRitio-0.03); CCActionInterval* scaleTope2 = CCScaleTo::create(kScaleDuration1, kScaleRitio-0.02, kScaleRitio); CCSequence* sequence2 = CCSequence::create(scaleTope1,scaleTope2,NULL); CCActionInterval* rotate2 = CCRepeatForever::create(sequence2); CCMenuItemImage *people = CCMenuItemImage::create("ZF_Shoot_Button_pmc.png", "ZF_Shoot_Button_pmc.png", this, menu_selector(MenuScene::menuChoseScene)); people->setPosition(ccp(xSpace*2+pngWidth*1.5, size.height/2)); people->setScale(kScaleRitio); people->setTag(kPeopleTag); people->runAction(rotate2); //添加富豪场菜单项 CCActionInterval* scaleTori1 = CCScaleTo::create(kScaleDuration1, kScaleRitio, kScaleRitio-0.03); CCActionInterval* scaleTori2 = CCScaleTo::create(kScaleDuration1, kScaleRitio-0.02, kScaleRitio); CCSequence* sequence3 = CCSequence::create(scaleTori1,scaleTori2,NULL); CCActionInterval* rotate3 = CCRepeatForever::create(sequence3); CCMenuItemImage *rich = CCMenuItemImage::create("ZF_Shoot_Button_hhc.png", "ZF_Shoot_Button_hhc.png", this, menu_selector(MenuScene::menuChoseScene)); rich->setPosition(ccp(xSpace*3+pngWidth*2.5, size.height/2)); rich->setScale(kScaleRitio); rich->setTag(kRichTag); rich->runAction(rotate3); //集成到菜单容器 richMenu = CCMenu::create(rich,people,exersize,NULL); richMenu->setPosition(CCPointZero); this->addChild(richMenu,1); }
void LoginLayer::_initComponent() { CCSize size = CCDirector::sharedDirector()->getVisibleSize(); /* 大游戏之名字 */ CCSprite* nameOfGame = CCSprite::create("GAME_NAME.png"); nameOfGame->setPosition(ccp(size.width / 2, size.height - 120)); addChild(nameOfGame, 10); /* 可移动背景 */ srand( (unsigned)time( NULL ) ); int x = rand() % 2; int y = rand() % 1500; CCSprite* pLoginBg = CCSprite::create("bg_big.png"); pLoginBg->setAnchorPoint(CCPointZero); pLoginBg->setPosition(ccp(-y/*(LOGIN_BG_WIDTH - size.width) / 2*/, 0)); this->addChild(pLoginBg); if (x == 0) { CCActionInterval * move = CCMoveTo::create(LOGIN_BG_TIME, ccp(size.width - LOGIN_BG_WIDTH, 0)); CCActionInterval * move1 = CCMoveTo::create(LOGIN_BG_TIME, ccp(0, 0)); CCFiniteTimeAction * seq= CCSequence::create(move, move1, NULL); CCActionInterval * repeatForever =CCRepeatForever::create((CCActionInterval* )seq); pLoginBg->runAction(repeatForever); } else if (x == 1) { CCActionInterval * move = CCMoveTo::create(LOGIN_BG_TIME, ccp(0, 0)); CCActionInterval * move1 = CCMoveTo::create(LOGIN_BG_TIME, ccp(size.width - LOGIN_BG_WIDTH, 0)); CCFiniteTimeAction * seq= CCSequence::create(move, move1, NULL); CCActionInterval * repeatForever =CCRepeatForever::create((CCActionInterval* )seq); pLoginBg->runAction(repeatForever); } /* 效果火焰 */ CCParticleSystemQuad* particle = CCParticleSystemQuad::create("dzt3.plist"); particle->setAnchorPoint(CCPointZero); particle->setPosition(ccp(320, 0)); particle->setScaleX(0.9); particle->setAutoRemoveOnFinish(true); addChild(particle, 11); /* 火星 */ CCParticleSystemQuad* particlefire = CCParticleSystemQuad::create("firefly.plist"); particlefire->setAnchorPoint(CCPointZero); particlefire->setPosition(ccp(0, 800)); particlefire->setAutoRemoveOnFinish(true); addChild(particlefire, 11); /* 火星1 */ CCParticleSystemQuad* particlefire1 = CCParticleSystemQuad::create("firefly2.plist"); particlefire1->setAnchorPoint(CCPointZero); particlefire1->setPosition(ccp(0, 800)); particlefire1->setAutoRemoveOnFinish(true); addChild(particlefire1, 11); /* 开始游戏按钮 */ CCMenuItemImage *pLoginBtn = CCMenuItemImage::create( "pre.png", "def.png", this, menu_selector(LoginLayer::gameInit)); pLoginBtn->setAnchorPoint(ccp(0.5, 0)); pLoginBtn->setPosition(ccp(size.width / 2, 70)); CCMenu* pLoginMenu = CCMenu::create(pLoginBtn, NULL); pLoginMenu->setAnchorPoint(CCPointZero); pLoginMenu->setPosition(CCPointZero); this->addChild(pLoginMenu); CCSprite* startFont = CCSprite::create("start.png"); startFont->setAnchorPoint(ccp(0.5, 0)); startFont->setPosition(ccp(size.width / 2, 115)); this->addChild(startFont); CCActionInterval * scale = CCScaleTo::create(1, 1.2); CCActionInterval * scale1 = CCScaleTo::create(1.5, 1); CCFiniteTimeAction * seq= CCSequence::create(scale,scale1,NULL); CCActionInterval * repeatForever =CCRepeatForever::create((CCActionInterval* )seq); startFont->runAction(repeatForever); /* 服务器列表滚动视图 */ /* m_scrollView = CCScrollView::create(VIEW_SIZE); m_scrollView->setViewSize(VIEW_SIZE); m_scrollView->setContentSize(CCSizeMake(62*5, VIEW_SIZE.height)); m_scrollView->setAnchorPoint(ccp(0, 0)); m_scrollView->setPosition(SCROLLVIEW_OFFSETX, OFFSET_1136 + SCROLLVIEW_OFFSETY); m_scrollView->setDirection(kCCScrollViewDirectionHorizontal); m_scrollView->setBounceable(true); m_scrollView->setDelegate(this); this->addChild(m_scrollView); */ for (int i = 0; i < 5; ++i) { CCMenuItemImage *pSvrBtn = CCMenuItemImage::create( "LG_nor.png", "LG_nor.png", this, menu_selector(LoginLayer::option)); pSvrBtn->setTag(SVRBG_NORMAL + i); pSvrBtn->setAnchorPoint(ccp(0, 0)); pSvrBtn->setPosition(ccp(SCROLLVIEW_OFFSETX + 60 * i, m_pGameState->getBottomOffset() + SCROLLVIEW_OFFSETY)); CCMenu* pMenu = CCMenu::create(pSvrBtn, NULL); pMenu->setAnchorPoint(ccp(0, 0)); pMenu->setPosition(ccp(0, 0)); this->addChild(pMenu); /* 服务器名字 */ CCLabelTTF* svrName = CCLabelTTF::create("", "Arial", 30, CCSizeMake(35, 300), kCCTextAlignmentCenter); svrName->setAnchorPoint(ccp(0.5, 0)); svrName->setColor(ccc3(255, 215, 0)); svrName->setPosition(ccp(SCROLLVIEW_OFFSETX + 37.0f + 60.0f * i, m_pGameState->getBottomOffset() + SCROLLVIEW_OFFSETY + 75.0f)); this->addChild(svrName, 2, SVR_NAME + i); /* 选中背景状态 */ CCSprite* pSvrBtnBg = CCSprite::create("LG_sel.png"); pSvrBtnBg->setAnchorPoint(ccp(0, 0)); pSvrBtnBg->setPosition(ccp(SCROLLVIEW_OFFSETX + 60.0f * i, m_pGameState->getBottomOffset() + SCROLLVIEW_OFFSETY - 10.0f)); pSvrBtnBg->setVisible(false); this->addChild(pSvrBtnBg, 1, SVRBG_SELECT + i); } unsigned int server_id = CCUserDefault::sharedUserDefault()->getIntegerForKey(LOGIN_SERVER_KEY, 0); /* 更改服务器名 */ if (0 == server_id) { CCLabelTTF* svrName = (CCLabelTTF*)this->getChildByTag(SVR_NAME); svrName->setScale(1.1); svrName->setString("体验服务器"); CCLabelTTF* svrName1 = (CCLabelTTF*)this->getChildByTag(SVR_NAME+1); svrName1->setString("研发服务器"); m_serverid[0] = 0; m_serverid[1] = 1; CCSprite* sp = (CCSprite*)this->getChildByTag(SVRBG_SELECT); /*默认第一个选中*/ sp->setVisible(true); } else { CCLabelTTF* svrName = (CCLabelTTF*)this->getChildByTag(SVR_NAME); svrName->setString("体验服务器"); CCLabelTTF* svrName1 = (CCLabelTTF*)this->getChildByTag(SVR_NAME + 1); svrName1->setString("研发服务器"); svrName1->setScale(1.1); m_serverid[0] = 0; m_serverid[1] = 1; CCSprite* sp1 = (CCSprite*)this->getChildByTag(SVRBG_SELECT + 1); sp1->setVisible(true); } /* 登陆框,待改善 */ // 取出存储的用户 id std::string strUserId = CCUserDefault::sharedUserDefault()->getStringForKey(USER_NAME_KEY); LoginBox* login = LoginBox::create(); login->setPosition(ccp(100, 200)); login->setContent(strUserId); addChild(login, 100, LOGIN_ID_TAG); }
// on "init" you need to initialize your instance bool HelloWorld::init() { ////////////////////////////// // 1. super init first if ( !CCLayer::init() ) { return false; } this->setTouchEnabled(true); ///////////////////////////// // 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(MENU_POSITION_CLOSE ); // create menu, it's an autorelease object CCMenu* pMenu = CCMenu::create(pCloseItem, NULL); pMenu->setPosition( CCPointZero ); this->addChild(pMenu, 1); // create gen menu CCMenuItemImage *ptestItem1 = CCMenuItemImage::create("gen.png", "gen.png",this,menu_selector(HelloWorld::menuOfGen)); ptestItem1->setPosition(MENU_POSITION_GEN); CCMenu *ptestMenu1 = CCMenu::create(ptestItem1,NULL); ptestMenu1->setPosition(CCPointZero); this->addChild(ptestMenu1,5); ///////////////////////////// // 3. add your codes below... // create label of pokers _pRightPoker = CCLabelAtlas::create("0123456789", "bignumber.png", 36, 80, '0') ; _pLeftPoker = CCLabelAtlas::create("0123456789", "bignumber.png", 36, 80, '0') ; _pRightPoker->setPosition(LABEL_POSITION_RIGHTPOKER); _pLeftPoker->setPosition( LABEL_POSITION_LEFTPOKER); _pLeftPoker->setString(""); _pRightPoker->setString(""); this->addChild(_pRightPoker,10); this->addChild(_pLeftPoker,11); //create label of Wins _pWins = CCLabelTTF::create("0","Marker Felt",50); _pWins->setPosition(LABEL_POSITION_WINS); this->addChild(_pWins); //create label of mynumber _pMyNumberLabel = CCLabelAtlas::create("0123456789", "scorenumber.png", 34, 60, '0') ; _pMyNumberLabel->setPosition( LABEL_POSITION_MYNUMBER); _pMyNumberLabel->setString("98"); this->addChild(_pMyNumberLabel, 1); // add my number sprite CCSprite *pScore = CCSprite::create("scoreframe.png"); pScore->setPosition(SPRITE_POSITION_SCORE); pScore->setTag(SCORETAG); this->addChild(pScore); // add two poker sprites CardSprite *pPokerLeftSide = CardSprite::create("poker.png","poker.png",1,callfuncN_selector(HelloWorld::flipLeftCard),this); CardSprite *pPokerRightSide = CardSprite::create("poker.png","poker.png",1,callfuncN_selector(HelloWorld::flipRightCard),this); pPokerLeftSide->setPosition(SPRITE_POSITION_LEFTPOKER); pPokerRightSide->setPosition(SPRITE_POSITION_RIGHTPOKER); pPokerLeftSide->setTag(LEFTPOKERTAG); pPokerRightSide->setTag(RIGHTPOKERTAG); this->addChild(pPokerRightSide, 1); this->addChild(pPokerLeftSide, 2); // add get and ok item for action CCSprite *getItem = CCSprite::create("get.png"); getItem->setPosition(SPRITE_POSITION_GET); getItem->setTag(GETTAG); CCSprite *okItem = CCSprite::create("ok.png"); okItem->setPosition(SPRITE_POSITION_OK); okItem->setTag(OKTAG); this->addChild(getItem); this->addChild(okItem); return true; }
bool MainScene::Init() { CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize(); CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin(); CCMenuItemImage *pCloseItem = CCMenuItemImage::create( "CloseNormal.png", "CloseSelected.png", this, menu_selector(MainScene::menuCloseCallback)); pCloseItem->setPosition(ccp(origin.x + visibleSize.width - pCloseItem->getContentSize().width/2 , origin.y + pCloseItem->getContentSize().height/2)); CCMenu* pMenu = CCMenu::create(pCloseItem, NULL); pMenu->setPosition(CCPointZero); this->addChild(pMenu, 1); CCLabelTTF* pLabel = CCLabelTTF::create("Hello World", "Arial", 24); pLabel->setPosition(ccp(origin.x + visibleSize.width/2, origin.y + visibleSize.height - pLabel->getContentSize().height)); this->addChild(pLabel, 1,1); CCSprite* pSprite = CCSprite::create("HelloWorld.png"); pSprite->setPosition(ccp(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y)); this->addChild(pSprite, 0); setTouchEnabled(true); // /* Create an autorelease CCNodeLoaderLibrary. */ // CCNodeLoaderLibrary * ccNodeLoaderLibrary = CCNodeLoaderLibrary::newDefaultCCNodeLoaderLibrary(); //// ccNodeLoaderLibrary->registerCCNodeLoader("MainScene", MainSceneLayerLoader::loader()); // /* Create an autorelease CCBReader. */ // cocos2d::extension::CCBReader * ccbReader = new cocos2d::extension::CCBReader(ccNodeLoaderLibrary); // /* Read a ccbi file. */ // CCNode * node = ccbReader->readNodeGraphFromFile("MainScene.ccbi", this); // m_AnimationManager = ccbReader->getAnimationManager(); // m_AnimationManager->runAnimationsForSequenceNamed("default"); // m_bMenuShow = true; // ccbReader->release(); // if(node != NULL) { // this->addChild(node); // } // CCFilteredSpriteWithOne* pSpOne = CCFilteredSpriteWithOne::create("Icon-144.png"); // addChild(pSpOne); // pSpOne->setPosition(ccp(visibleSize.width/2,visibleSize.height/2)); // CCGrayFilter* pF = CCGrayFilter::create(ccc4f(0.2, 0.3, 0.5, 0.1)); // pSpOne->setFilter(pF); // // CCFilteredSpriteWithMulti* pSpMulti = CCFilteredSpriteWithMulti::create("Icon-144.png"); // addChild(pSpMulti); // pSpMulti->setPosition(ccp(visibleSize.width/2,visibleSize.height/4)); // CCHueFilter* pF1 = CCHueFilter::create(240); // CCSaturationFilter* pF2 = CCSaturationFilter::create(1.5); // CCBrightnessFilter* pF3 = CCBrightnessFilter::create(-0.4); // CCArray* pArray = CCArray::create(); // pArray->addObject(pF1); // pArray->addObject(pF2); // pArray->addObject(pF3); // pSpMulti->setFilters(pArray); // //test setBlendFunc // ccBlendFunc cbl = { GL_SRC_ALPHA , GL_ONE }; // CCRotateBy * ccRotateBy = CCRotateBy::create(20.0f, 360); // CCRepeatForever * ccRepeatForever = CCRepeatForever::create(ccRotateBy); // this->mBurstSprite->runAction(ccRepeatForever); // pSp->setBlendFunc(cbl); //test Shader Utils // ShaderUtils::alphaMask(pSp, "Icon-114.png"); // ShaderUtils::colorHSL(pSp, 120, 60); m_count = 0; // CCSprite *sprite = CCSprite::create("Icon-144.png"); // CCSize winSize = CCDirector::sharedDirector()->getWinSize(); // CCTableView* tableView = CCTableView::create(this,ccp(sprite->getContentSize().width*4,sprite->getContentSize().height*4)); // tableView->setDirection(kCCScrollViewDirectionVertical); // tableView->setPosition(ccp(winSize.width/3,winSize.height/3)); // tableView->setDelegate(this); // tableView->setVerticalFillOrder(kCCTableViewFillTopDown); // this->addChild(tableView,0,111); // tableView->reloadData(); // sprite->release(); //背景图片 CCSprite * background = CCSprite::create("HelloWorld.png"); background->setPosition(ccp(visibleSize.width/2,visibleSize.height/2)); this->addChild(background,0); //创建一个裁剪节点用来实现遮罩的效果 CCClippingNode * clippingNode = CCClippingNode::create(); this->addChild(clippingNode,1); //向裁剪节点中加入内容,这里加入的是一个透明的层 CCLayerColor * layer = CCLayerColor::create(ccc4(0,0,0,200)); clippingNode->addChild(layer); //继续向裁剪节点中加入内容,这里加入的是一个精灵 CCSprite * sprite = CCSprite::create("Icon-144.png"); sprite->setPosition(ccp(visibleSize.width/4,visibleSize.height/2)); clippingNode->addChild(sprite); //创建模板,裁剪节点将按照这个模板来裁剪区域 CCSprite * stencil = CCSprite::create("Icon-114.png"); stencil->setPosition(ccp(visibleSize.width/2,visibleSize.height/2)); clippingNode->setStencil(stencil); //向裁剪节点中加入精灵,精灵的位置和裁剪的位置相同,所以最后让裁剪掉了 CCSprite * sprite2 = CCSprite::create("Icon-144.png"); sprite2->setPosition(ccp(visibleSize.width/2,visibleSize.height/2)); clippingNode->addChild(sprite2); //这个是用来设置显示裁剪区域还是非裁剪区域的 clippingNode->setInverted(true); //我们之前放了一张裁剪的模板,按照这个模板裁剪的时候同时按照这个alpha的值裁剪,这个值的范围是0-1 //设为0就把透明的区域裁剪掉了 // clippingNode->setAlphaThreshold(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; }
void ChallengeAgainLayer::onShow(int round, int need) { float totalWidth = 0.0; CCSize s = CCDirector::sharedDirector()->getWinSize(); CCSprite *app1 = CCSprite::create(g_sRelifeBGImage); app1->setAnchorPoint(ccp(0,0)); app1->setPositionX(30); app1->setPositionY(s.height*0.5); this->addChild(app1); totalWidth += app1->getContentSize().width; NumberSprite * roundTip = NumberSprite::create("green60",round); roundTip->setAnchorPoint(ccp(0,0)); roundTip->setPositionX(app1->getPositionX()+app1->getContentSize().width+4); roundTip->setPositionY(app1->getPositionY()); this->addChild(roundTip); totalWidth += 4; totalWidth += roundTip->realWidth; CCSprite *app2 = CCSprite::create(g_sGuanBGImage); app2->setAnchorPoint(ccp(0,0)); app2->setPositionX(roundTip->getPositionX()+roundTip->realWidth+4); app2->setPositionY(roundTip->getPositionY()); this->addChild(app2); totalWidth += 4; totalWidth += app2->getContentSize().width; float bx = (s.width - totalWidth)*0.5; app1->setPositionX(bx); roundTip->setPositionX(app1->getPositionX()+app1->getContentSize().width+4); app2->setPositionX(roundTip->getPositionX()+roundTip->realWidth+4); CCSprite *app3 = CCSprite::create(g_sLifeNeedBGImage); app3->setAnchorPoint(ccp(0,0)); app3->setPositionX(app1->getPositionX()); app3->setPositionY(app2->getPositionY()-app2->getContentSize().height-20); this->addChild(app3); NumberSprite * needTip = NumberSprite::create("green60",need); needTip->setAnchorPoint(ccp(0,0)); needTip->setPositionX(app3->getPositionX()+app3->getContentSize().width+4); needTip->setPositionY(app3->getPositionY()); this->addChild(needTip); CCSprite *app4 = CCSprite::create(g_sLifeValueBGImage); app4->setAnchorPoint(ccp(0,0)); app4->setPositionX(needTip->getPositionX()+needTip->realWidth+4); app4->setPositionY(needTip->getPositionY()); this->addChild(app4); CCMenuItemImage* pSureMenu = CCMenuItemImage::create( g_sSureBGImage, g_sSureBGImage, this, menu_selector(ChallengeAgainLayer::onCommandSure)); pSureMenu->setAnchorPoint(ccp(0,0)); CCMenu* pMenu = CCMenu::create(pSureMenu, NULL); this->addChild(pMenu); pMenu->setTouchPriority(-1000); pMenu->setAnchorPoint(ccp(0,0)); pMenu->setPositionY(app4->getPositionY()-app4->getTextureRect().size.height-40); pMenu->setPositionX(100); CCSprite * img = CCSprite::create(g_sReturnBGImage); CCMenuItemImage* pReturnMenu = CCMenuItemImage::create( g_sReturnBGImage, g_sReturnBGImage, this, menu_selector(ChallengeAgainLayer::onCommandReturn)); pReturnMenu->setAnchorPoint(ccp(0,0)); CCMenu* pMenu2 = CCMenu::create(pReturnMenu, NULL); this->addChild(pMenu2); pMenu2->setTouchPriority(-1000); pMenu2->setAnchorPoint(ccp(0,0)); pMenu2->setPositionY(pMenu->getPositionY()); pMenu2->setPositionX(s.width-img->getTextureRect().size.width-100); }
void UIStory::BtnUpOutCallback(CCObject* pSender) { CCMenuItemImage* pBtn = (CCMenuItemImage*)pSender; pBtn->stopAllActions(); pBtn->runAction(CCScaleTo::actionWithDuration(0.1f, CCGetScaleX())); }
void GameScene::showOverView() { if (m_pOverLayer == NULL) { m_pOverLayer = LGLayerColor::create(ccc4(0, 0, 0, 0)); m_pOverLayer->retain(); m_pOverLayer->setTouchMode(kCCTouchesOneByOne); m_pOverLayer->setTouchEnabled(true); m_pOverLayer->setZOrder(3); CCSprite *pTitle = CCSprite::create("title_over.png"); pTitle->setPosition(ccp(m_VisibleOrigin.x + m_VisibleSize.width / 2, m_VisibleOrigin.y + m_VisibleSize.height * 0.76f)); m_pOverLayer->addChild(pTitle); CCSprite *pBgScore = CCSprite::create("bg_score.png"); //pBgScore->setPosition(ccp(m_VisibleOrigin.x + m_VisibleSize.width / 2, m_VisibleOrigin.y + m_VisibleSize.height * 0.535f)); pBgScore->setPosition(ccp(m_VisibleOrigin.x + m_VisibleSize.width / 2, m_VisibleOrigin.y - pBgScore->getContentSize().height / 2)); pBgScore->setTag(kTagOverScoreBoard); m_pOverLayer->addChild(pBgScore); float bgW = pBgScore->getContentSize().width, bgH = pBgScore->getContentSize().height; int record = CCUserDefault::sharedUserDefault()->getIntegerForKey("record", 0); if (record < m_CurrentScore) { record = m_CurrentScore; CCUserDefault::sharedUserDefault()->setIntegerForKey("record", record); NativeBridge::submitScore(record); CCSprite *indicatorNew = CCSprite::create("new.png"); indicatorNew->setPosition(ccp(bgW * (0.5 - 0.2448980f), bgH * (0.5 - 0.08035714f))); pBgScore->addChild(indicatorNew); } CCLabelAtlas *current = CCLabelAtlas::create(CCString::createWithFormat("%d", m_CurrentScore)->getCString(), "fonts/font2.png", 36, 48, '0'); current->setAnchorPoint(ccp(0.5, 0.5)); current->setPosition(bgW / 2, bgH * 0.6394f); pBgScore->addChild(current); CCLabelAtlas *best = CCLabelAtlas::create(CCString::createWithFormat("%d", record)->getCString(), "fonts/font2.png", 36, 48, '0'); best->setAnchorPoint(ccp(0.5, 0.5)); best->setPosition(bgW / 2, bgH * (0.5 - 0.27679f)); pBgScore->addChild(best); CCMenuItemImage *pRetry = LGMenuItemImage::create("retry.png", NULL, this, menu_selector(GameScene::retryCallback)); CCMenuItemImage *pMenu = LGMenuItemImage::create("menu.png", NULL, this, menu_selector(GameScene::menuCallback)); pRetry->setPosition(ccp(m_VisibleOrigin.x + m_VisibleSize.width * 0.73333333f, m_VisibleOrigin.y + m_VisibleSize.height * 0.285f)); pMenu->setPosition(ccp(m_VisibleOrigin.x + m_VisibleSize.width * 0.26666667f, pRetry->getPositionY())); CCMenu *pCCMenu = CCMenu::create(pRetry, pMenu, NULL); pCCMenu->setTag(kTagOverMenu); pCCMenu->setAnchorPoint(CCPointZero); pCCMenu->setPosition(ccp(0, m_VisibleOrigin.y - (pRetry->getPositionY() - m_VisibleOrigin.y) * 2)); m_pOverLayer->addChild(pCCMenu); } m_pOverLayer->getChildByTag(kTagOverScoreBoard)->runAction(CCMoveTo::create(0.5f, ccp(m_VisibleOrigin.x + m_VisibleSize.width / 2, m_VisibleOrigin.y + m_VisibleSize.height * 0.535f))); m_pOverLayer->getChildByTag(kTagOverMenu)->runAction(CCMoveTo::create(1.0f, CCPointZero)); if (m_pOverLayer && m_pOverLayer->getParent() == NULL) { getParent()->addChild(m_pOverLayer); CC_SAFE_RELEASE_NULL(m_CurrentLayer); m_CurrentLayer = m_pOverLayer; m_CurrentLayer->retain(); onShowOverlay(true); } m_ScoreLabel->setVisible(false); }