pygame 界面输入之组合键(同时按两个键)解决方法

输入    !@#$%^&*()_+   这些键:
 

首先, 上的key.mods的运用只能解决一次组合键的情况,但是要实现输入算数表达式肯定不止一次啊。于是解决思路如下:

1. 把event都打印出来:

 这是我按下LSHIFT+大键盘9,松开之后按下RSHIFT+大键盘9的事件:

 第二次明明是组合键,为啥是mod==0呢,恳请各位大佬解答!

但是这些按键都是有唯一标识的‘scancode’:

键扫描码,可以理解为一堆高低电平(0,1)和ASCII码没什么关系。

具体解释:
计算机键盘通常采用行列扫描法来确定按下键所在的行列位置。所谓行列扫描法是指,把键盘按键排列成n行×m列的n*m行列点阵,把行、列线分别连接到两个 并行接口双向传送的连接线上,点阵上的键一旦被按动,该键所在的行列点阵信 就被认为已接通。按键所排列成的矩阵,需要用硬件或软件的方法轮转顺序地对其 行、列分别进行扫描,以查询和确认是否有键按动。如有键按动,键盘就会向主机发送被按键所在的行列点阵的位置编码,称为键扫描码。

 然后就可以定义一个pre_pressed的自变量存储上一个按键,然后自定义组合按键的行为事件。

 

文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树首页概览210400 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年7月17日
下一篇 2019年7月17日

相关推荐