触摸事件

触摸事件是手机游戏中最重要的事件,它易于创建,还能提供多种多样的功能。

让我们先了解一下什么是触摸事件,当你触摸移动设备的屏幕时,设备感受到被触摸,了解到被触摸的位置,同时取得触摸到的内容,然后你的触摸被回答。 这就是触摸事件。

如果你希望通过触摸控制屏幕下层的对象,那可以通过 优先级,达成这种需求,优先级高的对象能先处理事件。

创建触摸事件监听器:

C++

  1. // Create a "one by one" touch event listener
  2. // (processes one touch at a time)
  3. auto listener1 = EventListenerTouchOneByOne::create();
  4. // trigger when you push down
  5. listener1->onTouchBegan = [](Touch* touch, Event* event){
  6. // your code
  7. return true; // if you are consuming it
  8. };
  9. // trigger when moving touch
  10. listener1->onTouchMoved = [](Touch* touch, Event* event){
  11. // your code
  12. };
  13. // trigger when you let up
  14. listener1->onTouchEnded = [=](Touch* touch, Event* event){
  15. // your code
  16. };
  17. // Add listener
  18. _eventDispatcher->addEventListenerWithSceneGraphPriority(listener1, this);

可以看到,在使用触摸事件监听器时,可以监听三种不同的事件,每一个事件都有自己触发的时机。

三种事件及其触发时机:

  • onTouchBegan 开始触摸屏幕时
  • onTouchMoved 触摸屏幕,同时在屏幕上移动时
  • onTouchEnded 结束触摸屏幕时

原文: http://docs.cocos.com/cocos2d-x/manual/zh/event_dispatcher/touch.html