コード例 #1
0
ファイル: LayerStart.cpp プロジェクト: dalechngame/mygame
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;
}
コード例 #2
0
ファイル: Hanoi.cpp プロジェクト: brandav/CPlusPlus_Code
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;
			}
		}
	}
}