gpt4 book ai didi

java - Android 多点触控输入处理

转载 作者:行者123 更新时间:2023-12-02 04:02:29 25 4
gpt4 key购买 nike

我正在编写一个游戏,它有三个按钮,分别用于左、右移动和跳跃。

假设,我按右键移动由MotionEvent.Action_Down处理的角色。在按住主(右)按钮的同时,我按下由 MotionEvent.Action_Pointer_Down 处理的跳跃按钮。现在我释放跳跃按钮,该按钮应该将控件移动到 Action_Pointer_Up 但我仍然希望我的角色向右移动,因为右侧按钮尚未释放,但我不知道如何处理这个问题。最初我认为控制权将再次转移到 MotionEvent.Action_Down 但这不起作用。

有人可以帮我吗?

最佳答案

在 Android 中处理触摸事件时,onTouch 处理程序仅通知您状态更改。它不会发送检测到的触摸的整个状态,而是您必须跟踪您关心的信息。

当第一次检测到触摸时,将发送 Action_Down 事件,如您所见。这是一组触摸事件的开始,但仅表示一个触摸事件。之后,任何新检测到的手指都将显示为 Action_Pointer_Down,正如您所看到的。每个触摸点在其触摸期间都会有自己的 ID,因此如果您关心 Action_Move 事件,您可以在将来知道哪个触摸移动到了哪里。随着触摸事件的进行,您将看到 Action_Pointer_Up。这将告诉您剩下哪个触摸事件(可能是第一个)。当最后一次触摸消失时,Action_Up 被触发。此时屏幕上没有任何东西。

对于您的情况,您所看到的就是您所期望的上面给出的内容。当跳转被移除时,Action_Pointer_Up被触发。您需要做的就是确认跳跃触摸已被删除,然后让角色向右移动。除非用户移动手指或抬起手指,否则您不会再看到任何向右移动信号的事件。

关于java - Android 多点触控输入处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34758836/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com