博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
从tableview中拖动某个精灵
阅读量:6708 次
发布时间:2019-06-25

本文共 4448 字,大约阅读时间需要 14 分钟。

 

virtual void                                    registerWithTouchDispatcher(void);    virtual bool                                    ccTouchBegan(CCTouch *pTouch,CCEvent *pEvent);    virtual void                                    ccTouchMoved(CCTouch *pTouch,CCEvent *pEvent);    virtual void                                    ccTouchEnded(CCTouch *pTouch,CCEvent *pEvent);    virtual void                                    tableCellHighlight(CCTableView* table, CCTableViewCell* cell);
//设置成-1让它的层级降低这样就可以优先被触发//这样就会先执行touchbegain再执行tableCellHighlightvoid CCardlayer::registerWithTouchDispatcher(void){    CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this, -1, false); }
bool CCardlayer::ccTouchBegan(CCTouch *pTouch,CCEvent *pEvent){    switch (m_eClickTable)    {    case CCardlayer::CARD_TABLE_EQUIP_TAG:        {            if (m_nClickIndex != 0)                return false;        }        break;    case CCardlayer::CARD_TABLE_GENERAL_TAG:        {            if (m_nClickIndex != 1)                return false;        }        break;    case CCardlayer::CARD_TABLE_TRAP_TAG:        {            if (m_nClickIndex != 2)                return false;        }        break;    default:        break;    }    m_pTouchLocation = pTouch; //设置该函数优先触发主要是为了获取到这个变量        return true;}
void CCardlayer::tableCellHighlight(CCTableView* table, CCTableViewCell* cell){    m_tPos = cell->convertTouchToNodeSpace(m_pTouchLocation);    for (int i = 0; i < 2; ++i)    {        CCSprite* pFrame = (CCSprite*)cell->getChildByTag(CARD_CELL_BTN_LEFT_TAG + i);        CC_ERROR(pFrame, "【CCardlayer::tableCellHighlight】 pFrame 为空");        if(pFrame->boundingBox().containsPoint(m_tPos))        {            UINT unIndex = cell->getIdx();            m_nMoveIdx = unIndex * RIGHT_CELL_BTN_AMOUNT + i;            this->LoadMove();            return;        }    }}
void CCardlayer::LoadMove(){    std::string g_ImgPath(CGlobalMgr::GetInstance()->GetResourcesEx());    std::string strPath;    const Item_Info* pInfo = NULL;    const CEudemon* pEudemon = NULL;        CCSprite* pImgMove = NULL;        switch (m_eClickTable)    {    case CCardlayer::CARD_TABLE_EQUIP_TAG:        {            pInfo = m_pPackageMgr->QueryEquipById(m_nMoveIdx);            CC_ERROR(pInfo, "【CCardlayer::LoadMove】pInfo 为空")            CCString* pStrImgMove = CCString::createWithFormat("%d", pInfo->nImageIdx);            CC_ERROR(pStrImgMove, "【CCardlayer::LoadMove】pStrImgMove 为空")            strPath = g_ImgPath + pStrImgMove->getCString() + ".png";            pImgMove = CCSprite::create(strPath.c_str());        }        break;    case CCardlayer::CARD_TABLE_GENERAL_TAG:        {            pEudemon = m_pCardMgr->QueryEudemonByIndex(m_nMoveIdx);            CC_ERROR(pEudemon, "【CCardlayer::LoadMove】pEudemon 为空")            CCString* pStrImgMove = CCString::createWithFormat("%d", pEudemon->GetLookFace());            CC_ERROR(pStrImgMove, "【CCardlayer::LoadMove】pStrImgMove 为空")            strPath = g_ImgPath + pStrImgMove->getCString() + ".png";            pImgMove = CCSprite::create(strPath.c_str());        }        break;    case CCardlayer::CARD_TABLE_TRAP_TAG:        {            pInfo = m_pPackageMgr->QueryEquipById(m_nMoveIdx);            CCString* pStrImgMove = CCString::createWithFormat("%d", pInfo->nImageIdx);            CC_ERROR(pStrImgMove, "【CCardlayer::LoadMove】pStrImgMove 为空")            strPath = g_ImgPath + pStrImgMove->getCString() + ".png";            pImgMove = CCSprite::create(strPath.c_str());        }        break;    default:        break;    }    CC_ERROR(pImgMove, "【CCardlayer::LoadMove】pImgMove 为空")    pImgMove->setPosition(m_tPos);    pImgMove->setAnchorPoint(ccp(0.5, 0.5));    pImgMove->setVisible(false);    pImgMove->setTag(CARD_IMG_MOVE_TAG);    this->addChild(pImgMove);}
void CCardlayer::ccTouchMoved(CCTouch *pTouch,CCEvent *pEvent){    CCSprite* pImgMove = (CCSprite*)this->getChildByTag(CARD_IMG_MOVE_TAG);    CC_ERROR(pImgMove, "【CCardlayer::ccTouchMoved】pImgMove为空")    pImgMove->setVisible(true);    pImgMove->setPosition(pTouch->getLocation());}void CCardlayer::ccTouchEnded(CCTouch *pTouch,CCEvent *pEvent){    CCPoint tPos = pTouch->getLocation();    if ((tPos.x >= RIGHT_RECT_START_X && tPos.x <= RIGHT_RECT_START_X + RIGHT_RECT_WIDTH)         && (tPos.y >= RIGHT_RECT_START_Y && tPos.y <= RIGHT_RECT_START_Y + RIGHT_RECT_HEIGH))    {    }    this->removeChildByTag(CARD_IMG_MOVE_TAG);}

 

转载地址:http://jrnlo.baihongyu.com/

你可能感兴趣的文章
【系统架构师修炼之道】(10):绪论——系统架构师的定义与职业素质
查看>>
Uber 开源地理可视化工具 Ketoper.gl,加速数据处理
查看>>
NSDate格式化小例
查看>>
运维不容错过的4个关键指标!
查看>>
spring 基础
查看>>
商品详情页上拉查看详情
查看>>
Kubernetes DNS服务简介
查看>>
windbg调试堆破坏
查看>>
How to Install CMS Made Simple v2.2 on LAMP in CentOS 7.2
查看>>
新IT铺路 智慧出行时代来了!
查看>>
虚拟机上keepalived实验笔记
查看>>
ElasticSearch(java) 创建索引
查看>>
手把手教你在多种无监督聚类算法实现Python(附代码)
查看>>
第4章 Keras入门
查看>>
手工修复ie浏览器
查看>>
BATJ互掐,哪家AI公司首先达到万亿美元市值? | 新智元AI技术峰会论坛
查看>>
hdu 1232 畅通工程 (并查集)
查看>>
MySql的用户权限
查看>>
java中finally和return的执行顺序
查看>>
Hibernate5-一对多双向关联-左外连接-HQL
查看>>