1、 创建一个精灵sprite;

2、一个触摸事件 listener ,设置listener的onTouchBegan,onTouchMoved,onTouchEnded;

3、将sprite 和 listener关联起来。

 Sprite* sprite1 = Sprite::create("pk.png");this->addChild(sprite1, 0);sprite1->setPosition(ccp(300, 400));sprite1->setTag(1);Sprite*  sprite2 = Sprite::create("pk.png");this->addChild(sprite2, 0);sprite2->setPosition(ccp(200, 400));sprite2->setTag(0);Sprite*  sprite3 = Sprite::create("pk.png");this->addChild(sprite3, 0);sprite3->setPosition(ccp(400, 400));sprite3->setTag(0);auto listener1 = EventListenerTouchOneByOne::create();//创建一个触摸监听listener1->setSwallowTouches(true); //设置是否想下传递触摸//通过 lambda 表达式 直接实现触摸事件的回掉方法listener1->onTouchBegan = [](Touch* touch, Event* event){auto target = static_cast<Sprite*>(event->getCurrentTarget());Point locationInNode = target->convertToNodeSpace(touch->getLocation());Size s = target->getContentSize();Rect rect = Rect(0, 0, s.width, s.height);if (rect.containsPoint(locationInNode)){log("sprite began... x = %f, y = %f", locationInNode.x, locationInNode.y);target->setOpacity(180);return true;}return false;};listener1->onTouchMoved = [](Touch* touch, Event* event){auto target = static_cast<Sprite*>(event->getCurrentTarget());target->setPosition(target->getPosition() + touch->getDelta());};listener1->onTouchEnded = [=](Touch* touch, Event* event){auto target = static_cast<Sprite*>(event->getCurrentTarget());log("sprite onTouchesEnded.. ");target->setOpacity(255);};_eventDispatcher->addEventListenerWithSceneGraphPriority(listener1, sprite1);_eventDispatcher->addEventListenerWithSceneGraphPriority(listener1->clone(), sprite2);_eventDispatcher->addEventListenerWithSceneGraphPriority(listener1->clone(), sprite3);

如果想实现多个精灵拖动,使用clone方法

cocos3.X拖动精灵移动相关推荐

  1. 拖动精灵的三种方法比较

     构建Ball精灵: Ball.as package  {     import flash.display.Sprite; public class Ball extends Sprite      ...

  2. cocos2dx:重力加速度,自由落体:利用update()就能快速实现精灵自由落体运动

    cocos2dx:重力加速度,自由落体:利用update()就能快速实现精灵自由落体运动 设备/引擎:Mac(11.6)/cocos 开发工具:Xcode(13.0) 开发需求:拖动精灵移动,在松手的 ...

  3. 用Javascript实现Agent(网页精灵)(转)

    一直觉得Agent是用来做网站导航和帮助的不错选择,可惜MS Agent只有IE支持,而且好像加载速度不是很快,分析了一下觉得用Javascript绝对可以做到,以前对Javascript都是抄来抄去 ...

  4. cocos2d-x 自己写的一个scrollview 有待完善

    直接上代码,根据cocos2d-x 扩展库中的代码改编的. // //  MScrollView.h //  Test ScrollView // //  Created by Za aa on 13 ...

  5. 动画编辑器和骨骼动画使用

    动画编辑器 1.使用编辑器来创建编辑动画 (1)创建一个节点 (2)往节点里添加动画组件cc.Animation (3)编辑 动画剪辑器制作 AnimClip 动画剪辑就是一份动画的声明数据,我们将它 ...

  6. Tilemap瓦片地图

    可以用Tilemap工具来构建游戏世界的地图,创建瓦片地图时,Grid组件自动作为瓦片地图的父级,相比于传统使用照片搭建地图的方式,使用瓦片地图用来搭建地图可以更加迅速,而且使用传统方式搭建地图时,需 ...

  7. creator 跳跃弧线_jumpGame

    知识点 单词 convert:转变 坐标转换 bind()的实现 MDN的解释是:bind()方法会创建一个新函数,称为绑定函数,当调用这个绑定函数时,绑定函数会以创建它时传入 bind()方法的第一 ...

  8. FrontEnd笔记 -- PhotoShop

    文章目录 简介 基本使用 精灵图 去除水印 彩色CD 简介 基本概念 概念 说明 PS PhotoShop简称PS,由美国Adobe开发的一款用来处理图像(位图)的软件 AI Adobe Illust ...

  9. 7.Unity2D 横版 未受伤害时,血条缓慢变透明+伤害数值显示(浮动,大小,颜色)+协程的应用

    总目录https://blog.csdn.net/qq_54263076/category_11900070.html?spm=1001.2014.3001.5482 1.血条缓慢变淡 我们都知道,当 ...

最新文章

  1. extract_first()
  2. 数学与编程:“概率论”总结
  3. 一笔画问题 连通图(搜索+队列)
  4. mq多个消费者消费一个消息_消息中间件——RabbitMQ(五)快速入门生产者与消费者...
  5. 【NLP】一文速览 | 对话生成预训练模型
  6. 基于Boost::beast模块的无栈协程http服务器
  7. Android初级教程:Android中解析方式之pull解析
  8. 网上支付心案例payment
  9. 在SQL Server中用好模糊查询指令LIKE
  10. ASP.NET2.0打通文件图片处理任督二脉[转载]
  11. 记一次MySQL数据库恢复(附方案)
  12. java 取pdf 文本域_使用PDFBox获取文本行的位置
  13. 4. Linux 系统目录
  14. PTAM特征点法跟踪和建图 SLAM FAST Patch
  15. 线性稳压芯片的选取要素
  16. 计算机基础技能应用查询中心,《计算机基础及技能训练》大纲
  17. 2022-2028年中国林业碳汇行业市场发展规模及投资机会分析报告
  18. Python GIS神器shapely 2.0新版本来了
  19. js的Canvas逆时针旋转90度
  20. 第四届中国(广东)国际“互联网+”博览会今日在佛山开幕 聚集工业“智慧”推动产业加速转型...

热门文章

  1. 【毕业设计】43-基于单片机的红外无线防盗报警系统设计与实现(原理图工程源文件+源代码+实物图+答辩论文)
  2. web前端不好找工作之web前端面试简历补救篇
  3. 深圳夫妻随迁入户办理详解
  4. easyui手风琴菜单
  5. 在苹果Mac上怎样对“屏幕使用时间”中请求更多时间进行响应?
  6. 因涉政内容导致域名被封禁
  7. 电脑、Windows系统下方搜索栏搜不出文件怎么办?如何解决?实测有效
  8. 保弘实业|大学生理财必须做到这四点
  9. android开发面试题!360°深入了解Flutter,面试总结
  10. 响应式背景图片的几种方法