从tableview中拖动某个精灵
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, -, false);
}
bool CCardlayer::ccTouchBegan(CCTouch *pTouch,CCEvent *pEvent)
{
switch (m_eClickTable)
{
case CCardlayer::CARD_TABLE_EQUIP_TAG:
{
if (m_nClickIndex != )
return false;
}
break;
case CCardlayer::CARD_TABLE_GENERAL_TAG:
{
if (m_nClickIndex != )
return false;
}
break;
case CCardlayer::CARD_TABLE_TRAP_TAG:
{
if (m_nClickIndex != )
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 = ; i < ; ++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);
}
从tableview中拖动某个精灵的更多相关文章
- Tableview中Dynamic Prototypes动态表的使用
Tableview时IOS中应用非常广泛的控件,当需要动态的添加多条不同的数据时,需要用动态表来实现,下面给出一个小例子,适用于不确定Section的数目,并且每个Section中的行数也不同的情况, ...
- 关于tableView中tableHeaderView/tableFooterView/sectionHeader/sectionFooter/contentInset的理解
其实每个人的理解有所不同,找到最有利于自己的理解方式即可.有人把Cell,tableHeaderView,tableFooterView,sectionHeader,sectionFooter这些属性 ...
- ubuntu 工作区中拖动一个窗体到另一个工作区就卡住回不到桌面了
ubuntu 工作区中拖动一个窗体到另一个工作区就卡住回不到桌面了 解决方法: 按 alt + 回车 键直接就返回去了
- TableView 中cell间的分割线(及其他控件间(内)的分割线)设置
知识点: 1.在应用开发中,tableView中自带的分割线满足不了开发需求: 2.一些子空间中添加一些类似于分割线一样的东西等······ 补充知识点:导航条左侧或右侧的控件尽量靠近屏幕边缘设置 需 ...
- 关于TableView中出现deallocated问题
Message sent to deallocated instance 关于的ios 开发中 deallocated问题,相信大家遇到了不少了: 关于怎么查找解决这个问题,特别是当问题在tableV ...
- iOS中关于动态Tableview中的cell数据传输的多线程问题解决之拙见
iOS中关于动态Tableview中的cell数据传输的多线程问题解决之拙见 (2015-12-05 12:48:20)[编辑][删除] 转载▼ 首先我们先明确一下问题: 1.因为UI是在主线 ...
- 在unity中用鼠标实现在场景中拖动物体,用鼠标滚轮实现缩放
在场景中添加一个Plan,Camera,Directional Light,Cube.添加两个脚本scrollerScirpt(挂在Camera),CubeDragScript(挂在Cube上). 1 ...
- 如何在Cocos2D 1.0 中掩饰一个精灵(一)
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 原帖来自Ray Wunderlich写的精彩的文章 How To ...
- tableview中头部信息
//创建tableview中头部的文件#define kPadding 10 #define kIconWidth 100 #define kIconHeight 100 #define kCount ...
随机推荐
- php与redis使用经验分享 (转载)
一.安装 1.redis的下载及安装: 引用 mkdir /usr/local/redis cd /usr/local/redis wget http://redis.googlecode.com/f ...
- mongobooster 的使用
mongobooster是mongodb的客户端工具 1.配置数据库 file->connect..->from URL 2.数据查询 选中数据库名,右击-Open Shell->输 ...
- Vivaldi浏览器媲美Chrome
Vivaldi跨平台的浏览器,很好的兼容性...基本上跟Chrome一个层次的... 好的东西,用一次就明白!好酒,酒香巷子深... Download: https://vivaldi.com/dow ...
- C#实现多文件上传,写到文件夹中,获取文件信息以及下载文件和删除文件
前台:.js //上传附件 function uploadAttachment() { if ($("#Tipbind").attr('checked')) { var ip = ...
- [SQL Server]从 varchar 数据类型到 datetime 数据类型的转换产生一个超出范围的值。
见下图sql, 使用dateadd()转换时报如题错误, 原因是数据库表中存入的数据格式不正确, 数据格式不正确, 数据格式不正确, 重要的事情讲3遍!! ca.batch_no的前8位必须是日 ...
- Hibernate+maven+eclipse 实现自动建表
一.需求 如题,当建好Model 时,不想自己手工建表,可以采取hibernate进行自动建表.下面将用一个小例子来说明如何将其实现. 二.实现 说明:1)这里用的是4.3.1.Final版本的hib ...
- JAVA中线程池的简单使用
比如现在有10个线程,但每次只想运行3个线程,当这3个线程中的任何一个运行完后,第4个线程接着补上.这种情况可以使用线程池来解决,线程池用起来也相当的简单,不信,你看: package com.dem ...
- Runway for Mac(UML 流程图绘图工具)破解版安装
1.软件简介 Runway 是 macOS 系统上一款强大实用的软件开发工具,Runway for Mac 是一个界面简单功能强大的UML设计师.此外,Runway for Mac 带给你所有你 ...
- Mac OS下Android Studio的Java not found问题,androidfound
Android Studio正式版已经发布一段时间了,使用Mac版的Android Studio可能与遇到Java not found:Android Studio was unable to fin ...
- angularjs框架及其生态环境 --待续
angular的MVVM框架结构: 1. app, 2.routes, config, 3.module, 4.Controller, $scope,controller参数,事件 ...