• 触摸事件

    触摸事件

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

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

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

    创建触摸事件监听器:

    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 结束触摸屏幕时