Touch事件在移动游戏中是很重要的。它们很容易创建和提供多种功能。当你触摸移动设备的屏幕时,屏幕会知道你触摸了什么地方和触摸了什么。然后,会对你的触摸作为出应答。 触摸事件通常被分配一个优先级,优先级最高的事件才是响应的事件 。例子:

//  Create a "one by one" touch event listener
// (processes one touch at a time)
auto listener1 = EventListenerTouchOneByOne::create();

// trigger when you push down
listener1->onTouchBegan = [](Touch* touch, Event* event){
// your code
return true; // if you are consuming it
};

// trigger when moving touch
listener1->onTouchMoved = [](Touch* touch, Event* event){
// your code
};

// trigger when you let up
listener1->onTouchEnded = [=](Touch* touch, Event* event){
// your code
};

// Add listener
_eventDispatcher->addEventListenerWithSceneGraphPriority(listener1, this);

正如上面代码,所看到的,触摸有三个不同的情况:

  1. onTouchBegan:按下时触发
  2. onTouchMoved:按住并移动时触发
  3. onTouchEnded:手指抬起时触发