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

可以看到按键信息。

原文发布于微信公众号 - 代码GG之家(code_gg_home)

原文发表时间:2017-10-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏酷玩时刻

MySql 5.7.18 数据库主从(Master/Slave)同步安装与配置详解

MySql复制的优点: 1.如果主服务器出现问题,可以快速切换到从服务器提供的服务 2.可以在从服务器上执行查询操作,降低主服务器的访问压力 3.可以在从...

993
来自专栏耕耘实录

MySQL数据库的主主同步配置

版权声明:本文为耕耘实录原创文章,各大自媒体平台同步更新。欢迎转载,转载请注明出处,谢谢

1993
来自专栏Core Net

Visual Studio 2017 15.7 下的.NET Core

1305
来自专栏杨建荣的学习笔记

Linux下配置MySQL主从复制(r5笔记第13天)

MySQL的主从复制是自己一直想学习的一个实战经历,因为Oracle中的主从复制也是需要不少的配置选项,相比来说感觉重量级一些(数据量也重量级). 今天试了一下...

3616
来自专栏酷玩时刻

基于 CentOS Mysql 5.7.19 安装与主从同步配置详解

1.如果主服务器出现问题,可以快速切换到从服务器提供的服务 2.可以在从服务器上执行查询操作,降低主服务器的访问压力 3.可以在从服务器上执行备份,以避免备...

1232
来自专栏散尽浮华

mysql主从同步(4)-Slave延迟状态监控

之前部署了mysql主从同步环境(Mysql主从同步(1)-主从/主主环境部署梳理),针对主从同步过程中slave延迟状态的监控梳理如下: 在mysql日常维护...

4147
来自专栏Core Net

Visual Studio 2017 15.7 下的.NET Core

4478
来自专栏cmazxiaoma的架构师之路

MySQL主从复制

MySQL复制功能提供分担读负载。 基于二进制日志的复制是异步的,那么复制有什么好处? 1.实现在不同服务器上的数据分布,利用二进制日志增量进行,不需要太多...

1962
来自专栏运维小白

17.4 配置从

主从配置 - 从上操作 安装mysql 查看my.cnf,配置server-id=132,要求和主不一样 修改完配置文件后,启动或者重启mysqld服务 把主上...

2086
来自专栏iMySQL的专栏

MySQL FAQ 系列 — MySQL 复制中 slave 延迟监控

在MySQL复制环境中,我们通常只根据 Seconds_Behind_Master 的值来判断SLAVE的延迟。这么做大部分情况下尚可接受,但并不够准确,而应该...

3170

扫码关注云+社区

领取腾讯云代金券