转自:http://www.cnblogs.com/fjut/archive/2012/04/28/2475693.html
//ccTouchBegan必须实现,否则会报错 bool PicScan::ccTouchBegan(CCTouch* pTouch, CCEvent* event) { return true; } void PicScan::ccTouchMoved(CCTouch *touch, CCEvent *event) { //获得触摸点初始坐标 CCPoint beginLoc = touch->locationInView(touch->view()); beginLoc = CCDirector::sharedDirector()->convertToGL(beginLoc); //判断鼠标拖拉的区域是否在图片上 if(CCRect::CCRectContainsPoint(lpSprite->boundingBox(), this->getParent()->convertTouchToNodeSpace(touch)) == true) { //固定图片在某个区域 if(lpSprite->getPosition().y > s.height/2+50) { lpSprite->setPosition(ccp(lpSprite->getPosition().x, s.height/2+50)); } if(lpSprite->getPosition().y < s.height/2-50) { lpSprite->setPosition(ccp(lpSprite->getPosition().x, s.height/2-50)); } printf(" ccTouchMoved --------------\n"); //获得前一个触摸点坐标 CCPoint endLoc = touch->previousLocationInView(touch->view()); endLoc = CCDirector::sharedDirector()->convertToGL(endLoc); //计算偏移量 CCPoint offSet = ccpSub(beginLoc, endLoc); Drag(offSet); } } void PicScan::Drag(CCPoint offSet) { //计算精灵坐标加上移动偏移量、并设置精灵位置 CCPoint pos = ccpAdd(lpSprite->getPosition(), offSet); lpSprite->setPosition(pos); //.....<br>}
分类:
Cocos2d-x 交互
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述