如何在进行ACTION_MOVE时用另一根手指检测TOUCH事件

毛里西奥·格拉西亚·古铁雷斯

我正在开发游戏,我需要能够检测到一个手指正在执行MOVE,而另一只手指可能会触摸屏幕的另一部分。

使用以下代码,我可以同时检测到ACTION_MOVE(在屏幕的特定区域)和ACTION_DOWN

public boolean onTouch(View v, MotionEvent event) {
    final int dest_x = (int) event.getX();
    final int dest_y = (int) event.getY();

    onTrackPad = dbSettings.TRACK_PAD.contains(dest_x, dest_y);

    switch (event.getAction()) {
        case MotionEvent.ACTION_MOVE:
            if (onTrackPad) 
            {
                //move character 
            }         
            break;
        case MotionEvent.ACTION_DOWN:
            // Fire bullets 
            break;
    }
    //The event was consumed
    return true;
}

问题是我不能同时移动和射击(我需要停止移动才能射击,反之亦然)

我知道Android可以处理多点触控事件,但是还没有弄清楚如何使用它来同时处理这些事件,从而使播放器可以同时移动和射击

我也尝试使用getActionMasked没有运气的

毛里西奥·格拉西亚·古铁雷斯

阅读此问题后,Android MotionEvent.getActionIndex()和MultiTouch

这就是我解决问题的方式

public boolean onTouch(View v, MotionEvent event) {
    int dest_x ;
    int dest_y ;

    p = event.getActionIndex() ;

    dest_x = (int) event.getX(p);
    dest_y = (int) event.getY(p);

    onTrackPad = dbSettings.TRACK_PAD.contains(dest_x, dest_y);

    action = event.getActionMasked() ;

    switch (action) {
        case MotionEvent.ACTION_MOVE:
            if (onTrackPad) 
            {
                //move character 
            }         
            break;
        case MotionEvent.ACTION_DOWN:
            // Fire bullets 
            break;
    }
    //The event was consumed
    return true;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

用一根手指旋转椭圆(WPF)

来自分类Dev

如何防止uwp中的一根手指滚动进行listview控件?

来自分类Dev

如何在WinRT中用一根手指触摸获得总旋转角度?

来自分类Dev

强制两根手指滚动进行UITableView,但禁用一根手指滚动

来自分类Dev

让最后一根手指触摸屏幕

来自分类Dev

如何只用一根手指就能在Google Maps API(android)上旋转?

来自分类Dev

为UITableView强制两根手指滚动,但禁用一根手指滚动

来自分类Dev

XServer触摸屏,一根手指而不是两根手指滚动

来自分类Dev

仅用一根手指而不是两只手指来调整ImageView的大小

来自分类Dev

IE11触摸设备上的一根手指滚动与两根手指滚动之间的区别

来自分类Dev

如何在不松动手指的情况下检测滑动事件

来自分类Dev

Libgdx - 关于 2 人游戏。我希望每个玩家都可以用一根手指触摸自己的区域

来自分类Dev

iOS 13 blob pdf 文件的滚动问题(不能用一根手指滚动)

来自分类Dev

用两根手指进行Android缩放-onTouch和setScaleX,setScaleY

来自分类Dev

在HTML页面中检测手指悬停事件

来自分类Dev

如何在OpenCV中检测手套手指缺陷?

来自分类Dev

如何在javascript中的touchstart上检测到两个手指?

来自分类Dev

一根手指在MacBook触摸板上滚动

来自分类Dev

如何在IE 11中检测指针事件的手指数

来自分类Dev

如何在libgdx / android中用手指拖动结束时做些什么?

来自分类Dev

如何在Lenovo Thinkpad T400 / W540上启用两根手指滚动

来自分类Dev

如何在Lenovo Thinkpad T400 / W540上启用两根手指滚动

来自分类Dev

如何使侧面菜单与手指一起滑动?

来自分类Dev

如何在不产生触摸事件的情况下将手指从触摸屏上抬起?

来自分类Dev

UICollectionview:didSelectItemAtIndexPath不适用于单击。用两根手指滑动即可

来自分类Dev

用两根手指捏放大collectionView Xcode

来自分类Dev

手指移动时,On Touch Listener上的按钮不会释放

来自分类Dev

人类手中的手指检测

来自分类Dev

用户将手指放在屏幕上时立即触发事件

Related 相关文章

  1. 1

    用一根手指旋转椭圆(WPF)

  2. 2

    如何防止uwp中的一根手指滚动进行listview控件?

  3. 3

    如何在WinRT中用一根手指触摸获得总旋转角度?

  4. 4

    强制两根手指滚动进行UITableView,但禁用一根手指滚动

  5. 5

    让最后一根手指触摸屏幕

  6. 6

    如何只用一根手指就能在Google Maps API(android)上旋转?

  7. 7

    为UITableView强制两根手指滚动,但禁用一根手指滚动

  8. 8

    XServer触摸屏,一根手指而不是两根手指滚动

  9. 9

    仅用一根手指而不是两只手指来调整ImageView的大小

  10. 10

    IE11触摸设备上的一根手指滚动与两根手指滚动之间的区别

  11. 11

    如何在不松动手指的情况下检测滑动事件

  12. 12

    Libgdx - 关于 2 人游戏。我希望每个玩家都可以用一根手指触摸自己的区域

  13. 13

    iOS 13 blob pdf 文件的滚动问题(不能用一根手指滚动)

  14. 14

    用两根手指进行Android缩放-onTouch和setScaleX,setScaleY

  15. 15

    在HTML页面中检测手指悬停事件

  16. 16

    如何在OpenCV中检测手套手指缺陷?

  17. 17

    如何在javascript中的touchstart上检测到两个手指?

  18. 18

    一根手指在MacBook触摸板上滚动

  19. 19

    如何在IE 11中检测指针事件的手指数

  20. 20

    如何在libgdx / android中用手指拖动结束时做些什么?

  21. 21

    如何在Lenovo Thinkpad T400 / W540上启用两根手指滚动

  22. 22

    如何在Lenovo Thinkpad T400 / W540上启用两根手指滚动

  23. 23

    如何使侧面菜单与手指一起滑动?

  24. 24

    如何在不产生触摸事件的情况下将手指从触摸屏上抬起?

  25. 25

    UICollectionview:didSelectItemAtIndexPath不适用于单击。用两根手指滑动即可

  26. 26

    用两根手指捏放大collectionView Xcode

  27. 27

    手指移动时,On Touch Listener上的按钮不会释放

  28. 28

    人类手中的手指检测

  29. 29

    用户将手指放在屏幕上时立即触发事件

热门标签

归档