SDL系列讲解(十) 按键处理流程

SDL系列讲解(一)  简介
SDL系列讲解(二) 环境搭建
SDL系列讲解(三) 工具安装
SDL是什么,能干什么,为什么我们要学习它?
SDL系列讲解(四) demo讲解
SDL系列讲解(五) 调试c代码
SDL系列讲解(六) SDL_Activity流程
SDL系列讲解(七) SDL_image教程SDL系列讲解(八) SDL_ttf教程
SDL系列讲解(九) 异常退出分析
SDL 按键消息流程时序图
 

代码剖析
   

按键消息处理,路径比较简单,就是我们Android上面的SurfaceView的onKey方法处理,使用 onNativeKeyDown 或者onNativeKeyUp将按键消息传递到c代码中,c代码接收到按键事件,使用TranslateKeycode方法,将android的按键映射成SDL的扫描码(SDL_scancode.h)

,同时使用keyboard->keymap[scancode]拿到扫描码对应的SDL按键值,具体在SDL_default_keymap[SDL_NUM_SCANCODES]存储。
按键值都在这里SDL_keycode.h,然后填充一个SDL_Event联合体,按照key结构体去填写,具体为:
这里type的值为SDL_KEYDOWN 或者 SDL_KEYUP

state的值为SDL_PRESSED 或者 SDL_RELEASED
 repeat 存储是否重复按键
keysym.scancode 存储扫描码,这个取值在SDL_scancode.h,比如 :SDL_SCANCODE_AC_BACK
keysym.sym 存储按键值:这个取值在SDL_keycode.h 比如:SDLK_AC_BACK
keysym.mod 存储特殊键,处理组合键使用
windowID存储focus窗口值

演示代码
   
修改main.c


然后我们安装到手机上测试,查看log可以看到输出结果。


可以看到按键信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员入门进阶(免费辅导开题报告)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值