void MarketScene::initButton() { CCMenuItemImage *pMenuItem = CCMenuItemImage::create(s_pMenuItemBack.charMapFile, s_pMenuItemBack.charMapFilePress, this, menu_selector(MarketScene::buttonCallback)); if (NULL != pMenuItem) { pMenuItem->setAnchorPoint(ccp(1,1)); pMenuItem->setPosition(SCREEN); pMenuItem->setTag(BTN_CLOSE); } CCMenu *pMenu = CCMenu::create(pMenuItem, NULL); if (NULL != pMenu) { pMenu->setPosition(CCPointZero); addChild(pMenu); pMenu->setTag(TAG_MENU); } pMenuItem = CCMenuItemImage::create(s_pMenuItemBuy.charMapFile, s_pMenuItemBuy.charMapFilePress, s_pBuyDisable, this, menu_selector(MarketScene::buttonCallback)); pMenuItem->setAnchorPoint(ccp(0.5f, 0.5f)); pMenuItem->setPosition(ccp(CENTER.x, 120)); pMenuItem->setTag(BTN_BUY); pMenu->addChild(pMenuItem); char szFileName[32] = { 0 }; char szFileName2[32] = { 0 }; char szFileName3[32] = { 0 }; for (int i = 0; i < CARD_COUNT; i++) { sprintf(szFileName, s_pathCard.charMapFile, i); sprintf(szFileName2, s_pathCard.charMapFilePress, i); sprintf(szFileName3, s_pathCardDisable, i); CCMenuItemImage *pItem0 = CCMenuItemImage::create(szFileName, szFileName2, szFileName3); CCMenuItemImage *pItem1 = CCMenuItemImage::create(szFileName2, szFileName); CCMenuItemToggle *pToggle = CCMenuItemToggle::createWithTarget(this, menu_selector(MarketScene::buttonCallback), pItem0, pItem1, NULL); pToggle->setPosition(ccp(120 * i + s_pathCard.m_Position.x, s_pathCard.m_Position.y)); pToggle->setTag(BTN_CARD + i); if (g_Control.cards[i] > 0) { CCSprite *sprite = CCSprite::create(s_pathCardbuy.m_strPath); sprite->setPosition(s_pathCardbuy.m_Position); pToggle->addChild(sprite, TAG_CARD_BUY, TAG_CARD_BUY); } pMenu->addChild(pToggle); } checkCard(BTN_CARD); }
void MarketScene::buyCard(CCNode * pNode) { int price = getPrice(selectedIndex); if (g_Control.m_nCoin >= price) { CCMenuItemImage *pItem = (CCMenuItemImage *)pNode; pItem->setEnabled(false); //¹´Ñ¡ÒÑÂòÏî CCMenu *pMenu = (CCMenu *)this->getChildByTag(TAG_MENU); CCMenuItemToggle *pToggle = (CCMenuItemToggle *)pMenu->getChildByTag(selectedIndex); CCSprite *sprite = CCSprite::create(s_pathCardbuy.m_strPath); sprite->setPosition(s_pathCardbuy.m_Position); pToggle->addChild(sprite, TAG_CARD_BUY, TAG_CARD_BUY); //¿ÛÇ® g_Control.m_nCoin -= price; updateLabelAtlas(g_Control.m_nCoin, LabelAtlas_COIN); g_Control.cards[selectedIndex - BTN_CARD] = 1; g_Control.save(); } }