2016-01-13 43 views
0

我正在写一个游戏,它有三个按钮,用于左,右移动和跳转。Android多点触控输入处理

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

有人可以帮我吗?

回答

2

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

当您首次检测到触摸时,会发送Action_Down事件,如您所见。这是一组触摸事件的开始,但只会表示一次触摸事件。之后,任何新检测到的手指都会显示为Action_Pointer_Down,如您所见。每个触摸点在其触摸期间都会有自己的ID,因此如果您关心Action_Move事件,则您可以在将来告诉触摸已移到哪里。当触摸事件发生时,您将看到Action_Pointer_Up。这会告诉你哪个触摸事件离开了(可能是第一个)。当最后的触摸消失时,触发Action_Up。那时没有什么东西在触摸屏幕。

对于您的情况,您看到的是您期望的以上内容。当跳转被移除时,Action_Pointer_Up被触发。所有你需要做的就是验证跳跃触摸已被移除,并让角色向右移动。除非用户移动手指或抬起手指,否则不会再看到移动右侧信号的任何事件。

+0

谢谢! ..我会尽力让它工作 –