问题是这样的,在真机上用手触摸按下不放后,先响应了1次SDL_MOUSEBUTTONDOWN,然后就一直响应SDL_MOUSEMOTION(也就是mousemove鼠标移动),但是我的手没有动,然后松开,他一直要响应完SDL_MOUSEMOTION,才会响应SDL_MOUSEBUTTONUP。
    但是我在模拟器上测试,因为是鼠标点击的,按下鼠标后不放,他就只响应1次SDL_MOUSEBUTTONDOWN不会响应SDL_MOUSEMOTION,因为鼠标也没动。请问大家这到底是什么原因?
    我用的jni的sdl的event事件来处理的。
代码如下:int s2d_Proceed_Event(void)
{
int ret = 1;;
SDLKey key;
SDL_Event event;

if(SDL_PollEvent(&event)>0){    
if(event.type == SDL_QUIT){
  ret = -1 ;
}
/* Get touchpannel position */
else 
{
switch (event.type){
case SDL_MOUSEBUTTONDOWN:
__android_log_print(ANDROID_LOG_INFO, "EVENT", "==========%d==============\n",event.button.x);
 __android_log_print(ANDROID_LOG_INFO, "EVENT", "==========%d==============\n",event.button.y);     __android_log_print(ANDROID_LOG_INFO, "EVENT", "mousedown");
onmouse(1,(s32)event.button.x,(s32)event.button.y);
//onmouse(1,530,446);
            break;
case SDL_MOUSEBUTTONUP:
__android_log_print(ANDROID_LOG_INFO, "EVENT", "mouseup");
onmouse(0,(s32)event.button.x,(s32)event.button.y);
//onmouse(0,530,446);
break;
case SDL_MOUSEMOTION:
__android_log_print(ANDROID_LOG_INFO, "EVENT", "mousemove");
            break;
default: 
                break;
}
}
    }
return ret;
}

解决方案 »

  1.   

    恩 是因为是这样的 手放到触摸屏后,坐标一直在变,我估计是触摸屏太灵敏了,他认为了坐标改变所以会一直响应mousemove事件,而鼠标点击却不会这样。
    请问现在怎么处理才能不影响mousemove事件?
      

  2.   

    还是有影响的,会有延迟,如果马上点下松开就好,如果一直按一会稍微 多按一会都会出现很大的延迟反应,因为mousemove这个太多了,要处理完后才能响应mouseup很麻烦的