前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SDL系列讲解(十) 按键处理流程

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

作者头像
用户1263308
发布2018-02-02 11:08:21
1.3K0
发布2018-02-02 11:08:21
举报
文章被收录于专栏:代码GG之家代码GG之家

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可以看到输出结果。

可以看到按键信息。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-10-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 代码GG之家 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SDL 按键消息流程时序图
  • 演示代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档