- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写一个游戏,它有三个按钮,分别用于左、右移动和跳跃。
假设,我按右键移动由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/
我是一名优秀的程序员,十分优秀!