从tableview中拖动某个精灵
2014-01-04 13:52
197 查看
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再执行tableCellHighlight void 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); }
相关文章推荐
- Drupal的目录结构
- 证书考试时间安排
- 关于mysql数据库dos窗口下插入和显示数据库表中文的方法
- java多线程之从1数到10 //两个线程进行数数
- 办公软件word使用技巧 - imsoft.cnblogs
- Java SE7新特性之在数值型的字面值中使用下划线
- bash的几个特殊参数和位置参量
- 用友NC 6.3安装 注意
- 职场圣经1(转载)
- 安装mediawiki错误
- C# WPF 寻找可用端口
- 关于C++中的友元函数的总结
- WEB开发者不应该害怕的五件事
- 动画学习之Animating Views with Blocks
- 搭建红外遥控arm-hadoop集群过程
- 未分类--Windows API--CPlApplet
- 免费电子书网站大全
- 安装cscope出错
- setsockopt 设置socket 详细用法
- MongoDB 高级查询条件操作符