cocos3.X拖动精灵移动
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拖动精灵移动相关推荐
- 拖动精灵的三种方法比较
构建Ball精灵: Ball.as package { import flash.display.Sprite; public class Ball extends Sprite ...
- cocos2dx:重力加速度,自由落体:利用update()就能快速实现精灵自由落体运动
cocos2dx:重力加速度,自由落体:利用update()就能快速实现精灵自由落体运动 设备/引擎:Mac(11.6)/cocos 开发工具:Xcode(13.0) 开发需求:拖动精灵移动,在松手的 ...
- 用Javascript实现Agent(网页精灵)(转)
一直觉得Agent是用来做网站导航和帮助的不错选择,可惜MS Agent只有IE支持,而且好像加载速度不是很快,分析了一下觉得用Javascript绝对可以做到,以前对Javascript都是抄来抄去 ...
- cocos2d-x 自己写的一个scrollview 有待完善
直接上代码,根据cocos2d-x 扩展库中的代码改编的. // // MScrollView.h // Test ScrollView // // Created by Za aa on 13 ...
- 动画编辑器和骨骼动画使用
动画编辑器 1.使用编辑器来创建编辑动画 (1)创建一个节点 (2)往节点里添加动画组件cc.Animation (3)编辑 动画剪辑器制作 AnimClip 动画剪辑就是一份动画的声明数据,我们将它 ...
- Tilemap瓦片地图
可以用Tilemap工具来构建游戏世界的地图,创建瓦片地图时,Grid组件自动作为瓦片地图的父级,相比于传统使用照片搭建地图的方式,使用瓦片地图用来搭建地图可以更加迅速,而且使用传统方式搭建地图时,需 ...
- creator 跳跃弧线_jumpGame
知识点 单词 convert:转变 坐标转换 bind()的实现 MDN的解释是:bind()方法会创建一个新函数,称为绑定函数,当调用这个绑定函数时,绑定函数会以创建它时传入 bind()方法的第一 ...
- FrontEnd笔记 -- PhotoShop
文章目录 简介 基本使用 精灵图 去除水印 彩色CD 简介 基本概念 概念 说明 PS PhotoShop简称PS,由美国Adobe开发的一款用来处理图像(位图)的软件 AI Adobe Illust ...
- 7.Unity2D 横版 未受伤害时,血条缓慢变透明+伤害数值显示(浮动,大小,颜色)+协程的应用
总目录https://blog.csdn.net/qq_54263076/category_11900070.html?spm=1001.2014.3001.5482 1.血条缓慢变淡 我们都知道,当 ...
最新文章
- extract_first()
- 数学与编程:“概率论”总结
- 一笔画问题 连通图(搜索+队列)
- mq多个消费者消费一个消息_消息中间件——RabbitMQ(五)快速入门生产者与消费者...
- 【NLP】一文速览 | 对话生成预训练模型
- 基于Boost::beast模块的无栈协程http服务器
- Android初级教程:Android中解析方式之pull解析
- 网上支付心案例payment
- 在SQL Server中用好模糊查询指令LIKE
- ASP.NET2.0打通文件图片处理任督二脉[转载]
- 记一次MySQL数据库恢复(附方案)
- java 取pdf 文本域_使用PDFBox获取文本行的位置
- 4. Linux 系统目录
- PTAM特征点法跟踪和建图 SLAM FAST Patch
- 线性稳压芯片的选取要素
- 计算机基础技能应用查询中心,《计算机基础及技能训练》大纲
- 2022-2028年中国林业碳汇行业市场发展规模及投资机会分析报告
- Python GIS神器shapely 2.0新版本来了
- js的Canvas逆时针旋转90度
- 第四届中国(广东)国际“互联网+”博览会今日在佛山开幕 聚集工业“智慧”推动产业加速转型...