如何解决我看不到的触摸屏事件是否有问题?
(开始)我正在 GLES 上为 android 开发游戏。在我的应用程序中,为了在 3D 场景中执行角色的移动,我使用了一个大按钮,用户可以在其中拖动手指并沿所需方向移动角色。它完美地工作。然而,在一些罕见的时刻,当我点击向某个方向移动时,它无法正常工作,好像触摸屏只在那个位置停止“运行”。
(评论)有趣的是,当我旋转手机时,左右横向模式,问题就解决了。此外,当我单击按钮几次时,问题就会消失。我仔细搜索了我的应用程序,但没有发现问题的原因。直到我激活了一些 android 开发者选项来观察触摸屏的移动。我注意到当这个问题发生在我的应用程序中时,开发人员功能的触摸屏给出了一种“跳跃”,好像该区域对系统不可见,产生一种“这里什么都没有”。我指的不是相当于几个像素的小距离,而是一个相当大的区域,在一段时间内似乎“不可见”。这是我的触摸屏代码:
@Override
public boolean onTouchEvent(MotionEvent event) {
// Getting values.
int pointerIndex = event.getActionIndex();
int pointerId = event.getPointerId(pointerIndex);
int maskedAction = event.getActionMasked();
switch (maskedAction) {
// Down.
case MotionEvent.ACTION_DOWN:
case MotionEvent.ACTION_POINTER_DOWN:
myClass.onTouchDown((byte)pointerId,event.getX(pointerIndex),event.getY(pointerIndex));
break;
// Motion.
case MotionEvent.ACTION_MOVE:
for (int size = event.getPointerCount(),i = 0; i<size; i++){
int id = event.getPointerId(i);
if(id<size)
myClass.onTouchMotion((byte)id,event.getX(i),event.getY(i));
}
break;
// Up.
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_POINTER_UP:
myClass.onTouchUp((byte)pointerId,event.getY(pointerIndex));
break;
// Cancel.
case MotionEvent.ACTION_CANCEL:
break;
}
// Return true here.
return true;
}
我想知道为什么会发生这种情况,或者我哪里出错了,或者如何解决这个问题。提前致谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。