博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
cocos2dx-3.2 笔记 - 点击事件
阅读量:4574 次
发布时间:2019-06-08

本文共 1316 字,大约阅读时间需要 4 分钟。

点击事件检测

直接上代码

auto dispatcher = Director::getInstance()->getEventDispatcher();auto listener = EventListenerTouchOneByOne::create();listener->onTouchBegan = CC_CALLBACK_2(GameLayer::onTouchBegan, this);listener->onTouchMoved = CC_CALLBACK_2(GameLayer::onTouchMoved, this);listener->onTouchEnded = CC_CALLBACK_2(GameLayer::onTouchEnded, this);dispatcher->addEventListenerWithSceneGraphPriority(listener, this);bool GameLayer::onTouchBegan(Touch* touch, Event *event){    return true;}void GameLayer::onTouchMoved(Touch* touch, Event *event){}void GameLayer::onTouchEnded(Touch*touch, Event *event){}

 

检测点击了Sprite

 

bool GameLayer::CheckTouchAli(Touch *touch){    //将点击点转换成自己坐标系中的坐标,即相对于aliSprite(一个Sprite)的原点    Vec2 pt = aliSprite->convertTouchToNodeSpace(touch);    int nw = aliSprite->GetRect().size.width;    int nh = aliSprite->GetRect().size.height;    Rect rc(0,0, nw, nh);    return rc.containsPoint(pt);}

Sprite跟随拖动

void GameLayer::SetAliPosToTouchPos(Touch* touch){    Vec2 pt = aliSprite->convertTouchToNodeSpace(touch);    int nw = aliSprite->GetRect().size.width;    int nh = aliSprite->GetRect().size.height;    Vec2 touchPos = Vec2(aliSprite->getPositionX()-nw*0.5+pt.x        ,aliSprite->getPositionY()-nh*0.5+pt.y);    aliSprite->setPosition(touchPos);}

 

转载于:https://www.cnblogs.com/kee-chen/p/3928837.html

你可能感兴趣的文章
Algorithms
查看>>
老李推荐:第14章6节《MonkeyRunner源码剖析》 HierarchyViewer实现原理-装备ViewServer-启动ViewServer...
查看>>
《面对对象分析与设计》书摘
查看>>
VC2010MFC下的ArcEngine开发(一)
查看>>
Android Studio 1.0.2 设置内存大小
查看>>
捕获与异常
查看>>
数据适配 DataAdapter对象
查看>>
有序列表ol和定义列表dl,dt,dd
查看>>
联想小新Air 15 安装黑苹果macOS High Sierra 10.13.6过程
查看>>
公共POI导出Excel方法–java
查看>>
次短路——Dijkstra
查看>>
C++ compile issue
查看>>
安卓中的shape
查看>>
站立会议总结08
查看>>
C++ stat判断路径是文件还是目录
查看>>
动态代理
查看>>
ie11下,接受postmessage返回的信息
查看>>
7 big mistakes to avoid in first year of retirement
查看>>
小技巧
查看>>
python接口自动化20-requests获取响应时间(elapsed)与超时(timeout) ok试了 获取响应时间的...
查看>>