cocos2d-x 3.x 触摸事件
Posted kingBook
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cocos2d-x 3.x 触摸事件相关的知识,希望对你有一定的参考价值。
HelloWorldScene.h
bool touchBegan(cocos2d::Touch*touch, cocos2d::Event*event);//触摸开始,返回bool类型 void touchMoved(cocos2d::Touch*touch, cocos2d::Event*event); void touchEnded(cocos2d::Touch*touch, cocos2d::Event*event); void touchCancelled(cocos2d::Touch*touch, cocos2d::Event*event);
HelloWorldScene.cpp
EventListenerTouchOneByOne*listener=EventListenerTouchOneByOne::create(); listener->onTouchBegan=CC_CALLBACK_2(HelloWorld::touchBegan,this);//触摸开始,必须添加,不使用也要添加,否则运行不通过 listener->onTouchMoved=CC_CALLBACK_2(HelloWorld::touchMoved,this);//触摸移动 listener->onTouchEnded=CC_CALLBACK_2(HelloWorld::touchEnded,this);//触摸中断,一般是系统层级的消息,如来电话,触摸事件就会被打断 listener->onTouchCancelled=CC_CALLBACK_2(HelloWorld::touchCancelled,this); _eventDispatcher->addEventListenerWithSceneGraphpriority(listener,this); bool HelloWorld::touchBegan(Touch*touch, Event*event){ Vec2 pos=touch->getLocation(); log("touchBegan x:%f,y:%f",pos.x,pos.y); return true;//返回false时,触摸移动、触摸结束不会触发 } void HelloWorld::touchMoved(Touch*touch, Event*event){ Vec2 pos=touch->getLocation(); log("touchMoved x:%f,y:%f",pos.x,pos.y); } void HelloWorld::touchEnded(Touch*touch, Event*event){ Vec2 pos=touch->getLocation(); log("touchEnded x:%f,y:%f",pos.x,pos.y); } void HelloWorld::touchCancelled(Touch*touch, Event*event){ Vec2 pos=touch->getLocation(); log("touchCancelled x:%f,y:%f",pos.x,pos.y); }
以上是关于cocos2d-x 3.x 触摸事件的主要内容,如果未能解决你的问题,请参考以下文章
cocos2d-x ios游戏开发初认识 触摸事件与碰撞检測
cocos2d-x 源代码分析 : EventDispatcherEventListenerEvent 源代码分析 (新触摸机制,新的NotificationCenter机制)