#include "WN_WeaveCard.h" #include "cocos2d.h" #include "ui/CocosGUI.h" #include "cocostudio/CocoStudio.h" #include "SparrowCard.h" using namespace WNMJ_SPACE; ///////////////////////////// 新组合牌 ///////////////////////////////////////////// WN_WeaveCard::WN_WeaveCard() { } WN_WeaveCard::~WN_WeaveCard() { } // 结算组合牌 bool WN_WeaveCard::SetCardData(const uint8 cbCardData, DWORD dwOperateCode) { if (!uiInit(SP_SELFSTAND)) return false; if (m_pRootlayer == nullptr) return false; // 组合情况 m_cbCardData = cbCardData; m_dwOperateCode = dwOperateCode; m_CardType = SP_SELFSTAND; // 方向判定 Sprite* sp_Arrow = (Sprite*)m_pRootlayer->getChildByName("arrow"); sp_Arrow->setVisible(false); // 牌数量 uint8 cbCardDatas[MAX_WEAVE] = { 0, 0, 0, 0 }; uint8 cbCardCount = WN_CGameLogic::getInstance()->GetWeaveCard(dwOperateCode, cbCardData, cbCardDatas); // 显示控件 for (int i = 0; i < cbCardCount; i++) { string strCtrl = StringUtils::format("Card_%d", i); ImageView*cardSprite = (ImageView*)m_pRootlayer->getChildByName(strCtrl); cardSprite->setVisible(true); // 设置值 Sprite* sp_value = (Sprite*)cardSprite->getChildByName("Value"); string strPng = SparrowCard::GetCardValuePng(cbCardDatas[i]); sp_value->setTexture(strPng); } return true; } //补杠 void WN_WeaveCard::SetBuGang(const uint8 cbCardData) { if (m_pRootlayer == nullptr) return; if ((m_dwOperateCode&WIK_WN_PENG) == 0) return; m_dwOperateCode = WIK_WN_GANG; // 第四张牌 ImageView* cardSprite = (ImageView*)m_pRootlayer->getChildByName("Card_3"); cardSprite->setVisible(true); // 设置值 Sprite* sp_value = (Sprite*)cardSprite->getChildByName("Value"); string strPng = SparrowCard::GetCardValuePng(cbCardData); sp_value->setTexture(strPng); sp_value->setVisible(true); } // 显示组合牌 bool WN_WeaveCard::ShowCardData(const WORD wChairID, const uint8 cbCenterCard, DWORD dwOperateCode, WORD wProvideUser) { if (!uiInit(wChairID)) return false; if (m_pRootlayer == nullptr) return false; // 组合情况 m_cbCardData = cbCenterCard; m_dwOperateCode = dwOperateCode; m_CardType = (EN_SPARROW_TYPE)wChairID; // 牌数量 uint8 cbCardDatas[MAX_WEAVE] = { 0, 0, 0, 0 }; m_cbCardCount = WN_CGameLogic::getInstance()->GetWeaveCard(dwOperateCode, cbCenterCard, cbCardDatas); // 显示控件 for (int i = 0; i < m_cbCardCount; i++) { // 找到牌 string strCtrl = StringUtils::format("Card_%d", i); ImageView* cardSprite = (ImageView*)m_pRootlayer->getChildByName(strCtrl); cardSprite->setVisible(true); Sprite* sp_value = (Sprite*)cardSprite->getChildByName("Value"); // 暗杠 if (wChairID == wProvideUser) { if (i < MAX_WEAVE - 1) { if ((SP_OPPSTAND == m_CardType) || (SP_SELFSTAND == m_CardType)) { cardSprite->loadTexture("Games/Sparrow/card/bgAngang.png"); } else { cardSprite->loadTexture("Games/Sparrow/card/xz_gai_card.png"); } } sp_value->setVisible(false); } else { // 设置值 string strPng = SparrowCard::GetCardValuePng(cbCardDatas[i]); sp_value->setTexture(strPng); sp_value->setVisible(true); } } // 方向判定 Sprite* sp_Arrow = (Sprite*)m_pRootlayer->getChildByName("arrow"); sp_Arrow->setTexture(StringUtils::format("Games/Sparrow/card/Weave%d.png", wProvideUser)); // 自己暗杠显示第四张牌 if (wChairID == wProvideUser) { sp_Arrow->setVisible(false); ImageView*cardSprite = (ImageView*)m_pRootlayer->getChildByName("Card_3"); cardSprite->setVisible(true); // 设置值 Sprite* sp_value = (Sprite*)cardSprite->getChildByName("Value"); string strPng = SparrowCard::GetCardValuePng(cbCardDatas[MAX_WEAVE - 1]); sp_value->setTexture(strPng); sp_value->setVisible(true); } return true; }