关于SDL多指触屏事件获取各手指状态的问题。

转自 :http://tieba.baidu.com/p/4251800066
  • 只看楼主
  • 收藏

  • 回复
  • 关于SDL多指触屏事件获取各手指状态的问题。_第1张图片
  • 简单aaaaaaa
  • 大名鼎鼎
    10
我不会告诉你们
我到现在还没解决
while(SDL_PollEvent(&event))
{
if(event.type==SDL_FINGERDOWN||
event.type==SDL_FINGERUP||
event.type==SDL_FINGERMOTION
)
{
//各手指状态
if(event.type==SDL_FINGERDOWN)
EVE_pos[event.tfinger.fingerId].state=1;
if(event.type==SDL_FINGERUP)
EVE_pos[event.tfinger.fingerId].state=3;
if(event.type==SDL_FINGERMOTION)
EVE_pos[event.tfinger.fingerId].state=2;
//各手指坐标
EVE_pos[event.tfinger.fingerId].x= event.tfinger.x*S_w;
EVE_pos[event.tfinger.fingerId].y = event.tfinger.y*S_h;
EVE_pos[event.tfinger.fingerId].id = event.tfinger.fingerId;
}
}


这种方法是不能获取各手指状态的


  • 回复
  • 1楼
  • 2016-01-05 17:27
  • 举报 |个人企业举报垃圾信息举报
  • 来自Android客户端
  • 关于SDL多指触屏事件获取各手指状态的问题。_第2张图片
  • 雷神lyc
  • 大名鼎鼎
    10
唉,我不知道你是要多少个手指 ,在很久以前我写的个游戏框架,里面就涉及到屏幕缩放,需要两手指,不过我用的另外的方法 SDL_MultiGestureEvent,实现了缩放已经够了,现在我写了游戏引擎,很多方面比以前那个游戏框架都强太多了,不过我还没有发布,刚好遇到这个问题,我游戏里面涉及到拖动物体,这时候不允许另外的手指干涉,就得用到fingerId,这次我试了下 SDL_TouchFingerEvent中的fingerId,好像不是你那么用的


回复
  • 2楼
  • 2016-01-07 01:46
  • 举报 |个人企业举报垃圾信息举报
  • 来自Android客户端
  • 关于SDL多指触屏事件获取各手指状态的问题。_第3张图片
  • 雷神lyc
  • 大名鼎鼎
    10
好吧,我说了一堆废话,请无视,你这个用法没错,是不是你之后调用的问题呢,注意不同先后顺序id会发生变化什么的,强制转换等等什么的,反正我这样试了没什么问题


收起回复
  • 3楼
  • 2016-01-07 06:35
  • 举报 |个人企业举报垃圾信息举报
  • 来自Android客户端
  • 关于SDL多指触屏事件获取各手指状态的问题。_第4张图片
    简单aaaaaaa:  这样是可以获取各手指的坐标,但是各手指的按下状态是获取不了的。比如有一个手指是滑动状态,其他手机全都变成滑动状态了。
    2016-1-7 07:07 回复
  • 关于SDL多指触屏事件获取各手指状态的问题。_第5张图片
    一周休七日:  回复 @简单aaaaaaa :你手指的问题!你单指能保持住“按下”状态两秒算你厉害!
    2016-1-7 12:46 回复
  • 关于SDL多指触屏事件获取各手指状态的问题。_第6张图片
    雷神lyc:  回复 简单aaaaaaa :可以获取各手指状态的,这个过程非常快,我觉得你需要吧那个瞬间状态给储存起来以后判断使用,而且按下基本上都会有微小滑动的
    2016-1-7 13:52 回复
  • 我也说一句

     

  • 关于SDL多指触屏事件获取各手指状态的问题。_第7张图片
  • 我是_ID_
  • 高手寂寞
    11
SDL_TouchID device=SDL_GetTouchDevice(0);
for(int i=0;i {
SDL_Finger *finger = SDL_GetTouchFinger(device,i);
if(finger!=NULL)
{
multipos[i][0]=finger->x;
multipos[i][1]=finger->y;
}
}

Google


收起回复
  • 6楼
  • 2016-01-08 06:43
  • 举报 |个人企业举报垃圾信息举报
  • 来自Android客户端
  • 关于SDL多指触屏事件获取各手指状态的问题。_第8张图片
    简单aaaaaaa:  我需要的是各个手指按下的状态,不是坐标
    2016-1-8 07:03 回复
  • SONGAKY1:  回复 简单aaaaaaa :
    2016-1-22 19:28 回复
  • 我也说一句

     

  • 5646789798798l
  • 哈啰沃德
    1
我建议你去搜一下思必达学院,里面有全套的编程和开放源码,有最新的兄弟连和传智视频教程, 搜 思必达学院


收起回复
  • 8楼
  • 2016-01-10 07:19
  • 举报 |个人企业举报垃圾信息举报
  • 5646789798798l:  自己学习,搜思必达学院,简单易学,一周让你不比话几千块钱找人做网站了。因为你自己就能用很短的时间做个漂亮完美的网站出来。百度搜索 思必达学院
    2016-1-11 03:44 回复
  • 我自己188:  思必达学院根据学生学习曲线,设计课程难易度曲线,并强调难点问题,力求最佳的学习效果,让你学习起来更容易,思必达学院工作人员一直坚持不懈的努力获得更好的编程和资源,免费视频让你任性下载!
    2016-1-21 20:13 回复
  • yxs_0131:  想要经典教程源码视频就来思必达学院,搜 思必达学院 来了不后悔
    2016-1-22 16:16 回复
  • 茶留呈依:  史上最全编程全部是高清晰的视屏加配套素材 需要的去搜 思必达学院
    2016-1-23 10:11 回复
  • 关于SDL多指触屏事件获取各手指状态的问题。_第9张图片
    阳光的菲利亚:  这个教程资源现在在思必达学院有全套高清的,可以免费下载而且是百度网盘的资源可以一键转存,百度搜索思必达学院
    2016-1-24 10:37 回复
  • 我也说一句

     

  • 贴吧游戏
听说来玩的都领了T豆!  贴吧用户专享福利,你领了么? 
关于SDL多指触屏事件获取各手指状态的问题。_第10张图片
  • 推荐 来自 贴吧游戏
  • 关于SDL多指触屏事件获取各手指状态的问题。_第11张图片
  • xgh电3
  • 反人类
    8
http://www.tudou.com/programs/view/OpD1H9LXJlE


收起回复
  • 9楼
  • 2016-01-11 07:12
  • 举报 |个人企业举报垃圾信息举报
  • 来自Android客户端
  • 关于SDL多指触屏事件获取各手指状态的问题。_第12张图片
    xgh电3:  一点点sdl教程
    2016-1-11 07:12 回复
  • 我也说一句

     

  • 关于SDL多指触屏事件获取各手指状态的问题。_第13张图片
  • sahban
  • 反人类
    8
先取FingerId 再判断event.type


回复
  • 11楼
  • 2016-01-16 08:02
  • 举报 |个人企业举报垃圾信息举报
  • 来自Android客户端
  • qkqpttgf
  • 大名鼎鼎
    10
event.type不是手指按下fingerdown,这个event应该是multigesture。

if (event.type == SDL_MULTIGESTURE)
// 多指触屏事件
{
x = event.mgesture.x;
y = event.mgesture.y;
dg += event.mgesture.dTheta * 90;
// 旋转角度,值很小(*90后手感正常),而且dTheta只是每次的值,所以要累加起来
dd += event.mgesture.dDist * 10;
}



   ——水木逸清华,婉兮笙清扬。


收起回复
  • 13楼
  • 2016-01-24 22:17
  • 举报 |个人企业举报垃圾信息举报
  • 来自Android客户端
  • 关于SDL多指触屏事件获取各手指状态的问题。_第14张图片
    简单aaaaaaa:  我要获得的是各个手指的按下类型。
    2016-1-24 22:54 回复
  • qkqpttgf:  回复 简单aaaaaaa :你把event换用multi的   ——水木逸清华,婉兮笙清扬。
    2016-1-25 12:12 回复
  • 关于SDL多指触屏事件获取各手指状态的问题。_第15张图片
    sahban:  回复 简单aaaaaaa :11楼
    2016-1-25 18:25 回复
  • 我也说一句

     

  • 关于SDL多指触屏事件获取各手指状态的问题。_第16张图片
  • sahban
  • 反人类
    8
while (SDL_Event(&e)){} 这个循环意思就是从事件队列一个一个抽取事件再判断,一直到抽完为止 你的每一个手指的按下都会依次储存进事件队列,所以若想要判断不同手指的DOWN UP MOVEMENT状态,要先判断fingerId 比如你用两根手指按在屏幕上, 两次循环会获得不同fingerid 所对应的触摸状态,坐标之类的也不同


收起回复
  • 14楼
  • 2016-01-25 18:38
  • 举报 |个人企业举报垃圾信息举报
  • 来自Android客户端
  • 关于SDL多指触屏事件获取各手指状态的问题。_第17张图片
    简单aaaaaaa:  两根手指按在屏幕上,当有一个变为MOTION,其他的手指都会变成MOTION的
    2016-1-25 18:46 回复
  • 关于SDL多指触屏事件获取各手指状态的问题。_第18张图片
    简单aaaaaaa:  回复 简单aaaaaaa :并不是你说的会获得不同fingerid所对应的触摸状态
    2016-1-25 18:47 回复
  • 关于SDL多指触屏事件获取各手指状态的问题。_第19张图片
    sahban:  回复 简单aaaaaaa :先试试 我试过。
    2016-1-25 19:00 回复
  • 我也说一句

     

  • 关于SDL多指触屏事件获取各手指状态的问题。_第20张图片
  • sahban
  • 反人类
    8
SDL_Point a,b;
while (SDL_PollEvent(&e))
{
if (e.type==SDL_FINGERUP || e.type==SDL_FINGERDOWN || e.typez=SDL_FINGERMOTION)
{
if (e.tfinger.fingerID==0)
{
if (e.type==SDL_FINGERDOWN)
{
a.x=e.tfinger.x;
a.y=e.tfinger.y;
}
}
else if (e.tfinger.fingerID==1)
{
if (e.type==SDL_FINGERDOWN)
{
b.x=e.tfinger.x;
b.y=e.tfinger.y
}
}
}
}

你可能感兴趣的:(SDL2)