bool LayerStart::init() { CCLayer::init(); // 先加背景图片 CCSprite* bg = CCSprite::create("ScenceStart.png"); addChild(bg); bg->setPosition(ccp(winSize.width/2, winSize.height/2)); // 再加一个按钮 CCMenuItemImage* item = CCMenuItemImage::create("playgameNormal.png", "playgameClose.png", this, menu_selector(LayerStart::Start)); CCMenu* menu = CCMenu::createWithItem(item); addChild(menu); item->setPositionY(item->getPositionY() - 50); return true; }
void HelloWorld::selectPillar(CCObject* target) { bool bTopBlock = true; float topBlockSize; float selectedBlockSize; // set all pillar colors to default for (int i=0 ; i<3 ; i++) { ((CCMenuItemImage*)((this->getChildByTag(i))->getChildByTag(i)))->setOpacity(255); } // set selected pillar CCMenuItemImage* pillar = (CCMenuItemImage*)(target); selectedPillar = pillar->getTag(); //pillar->setOpacity(140); //CCLog("selectedPillar is %i",selectedPillar); if (topBlock[selectedPillar] == 20) { topBlockSize = 0; } else { topBlockSize = ((CCMenuItemImage*)(this->getChildByTag(topBlock[selectedPillar])->getChildByTag(topBlock[selectedPillar])))->getScaleX(); } selectedBlockSize = ((CCMenuItemImage*)(this->getChildByTag(selectedBlock)->getChildByTag(selectedBlock)))->getScaleX(); // if selected block size is < top block on pillar OR no block on pillar OR no block above it, run move block fxn CCMenuItemImage* block = ((CCMenuItemImage*)(this->getChildByTag(selectedBlock)->getChildByTag(selectedBlock))); float aboveBlock = block->getPositionY() + bHeight; for (int x=3 ; x<10 ; x++) { if (((CCMenuItemImage*)(this->getChildByTag(x)->getChildByTag(x)))->boundingBox().containsPoint(ccp(block->getPositionX(),aboveBlock)) == true) { //CCLog("block exists above selected block"); bTopBlock = false; break; } } //CCLog("topBlockSize is %f\nselectedBlockSize is %f",topBlockSize,selectedBlockSize); if ((numBlock[selectedPillar] == 0) || (selectedBlockSize < topBlockSize)) { if (bTopBlock == true) moveBlock(); } // winning condition - 7 blocks,top block is tag 9 for (int y=1 ; y<3 ; y++) { if (numBlock[y] == 7) { if (topBlock[y] == 9) { CCSprite* winMsg = CCSprite::create("/winMsg.png"); winMsg->setPosition(ccp(240,150)); winMsg->setScale(float(.5)); this->addChild(winMsg); CCMenu* restartM = CCMenu::create(); CCMenuItemImage* restartB = CCMenuItemImage::create("/restartB.png","/restartB.png",this,menu_selector(HelloWorld::restartGame)); (restartB->getSelectedImage())->setScale(.75); (restartB->getSelectedImage())->setPosition(ccp(restartB->getPositionX()+20,restartB->getPositionY()+20)); restartB->setScale(float(.5)); restartB->setPositionY(-50); restartM->addChild(restartB); this->addChild(restartM); break; } } } }