android - 如何在 ACTION_MOVE 过程中用另一根手指检测 TOUCH 事件

标签 android event-handling

我正在开发一款游戏,我需要能够检测到一根手指正在执行 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 can handle multi-touch events但还没有弄清楚如何使用它来同时处理这些事件,以便玩家可以同时移动和开火

我也尝试过使用 getActionMasked 但没有任何运气

最佳答案

读完这个问题Android MotionEvent.getActionIndex() and 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;
}

关于android - 如何在 ACTION_MOVE 过程中用另一根手指检测 TOUCH 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30307991/

相关文章:

c# - 检查事件处理程序是否存在

jquery - 加载外部 HTML 并为 HTML 中声明的元素添加事件处理程序

javascript - 将相同的事件监听器添加到具有不同参数的多个元素

java - 在 Android TimePicker 对话框 fragment 中显示 12 小时格式

java - Android:我如何只使用 sin 或 cos 而不是 Math.sin 或 Math.cos

android - 为什么当我从函数中删除 null 时 android studio 会出错?

java - 在 Java 中是否有折叠多个事件的标准技术和/或示例?

android - 在 Android 应用程序中检索对特定 Facebook 页面的点赞数

java - Android PhoneGap 插件,UI 标签栏,调整 WebView 大小

javascript - Javascript(NodeJS) 如何处理有关事件的范围和上下文