cocos2dx-3.2 笔记 - 点击事件
2014-08-22 10:45
183 查看
点击事件检测
直接上代码
检测点击了Sprite
Sprite跟随拖动
直接上代码
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); }
相关文章推荐
- Cocos2dx学习笔记(二)、点击事件
- iphone开发笔记:为UIImageView添加点击事件
- cocos2dx 新建的CCLayer触屏点击事件不好使的解决办法
- cocos2dx3.2 学习笔记(2)--ActionManagerTest
- cocos2dx3.2 学习笔记(3)--ActionsEaseTest(2)
- cocos2dx3.2学习笔记(2)cocos2d-x开发环境搭建
- 移动项目开发笔记(禁止一个按钮在服务器事件处理完成前连续点击按钮)
- Android笔记2—处理点击事件的几种方法
- cocos2dx 3.2 事件机制
- ext 3.2 tree 在IE10中点击事件失效的bug
- cocos2dx3.2 学习笔记(3)--ActionsTest(1)
- iOS cocos2d学习笔记-<九>坐标转换、点击事件响应、位置判断
- coco笔记:连续点击相应事件处理(使用协同)_ Java和C#
- ActionBarSherlock的学习笔记(三) ------------ ActionBarSherlock中的overflow及item的点击事件
- cocos2dx3.2 学习笔记(1)--CppTest
- Cocos2d-x html5笔记 - 点击事件的处理
- cocos2dx 精灵点击事件
- quick_cocos2dx 点击事件
- cocos2dx3.2 学习笔记(2)--ActionManagerTest(3)
- cocos2dx3.2学习笔记之Director(导演类)