python键盘事件_Python之pygame学习键盘事件操作(9)
pygame键盘事件操作
✕
什么是事件呢?按下键盘某个按键,鼠标移动,包括点击关闭按钮都可以算是事件操作。
pygame中事件模块是pygame.event,官方说法是用于与事件和队列进行交互。
不用学习太多,主要学习下常用即可;
pygame.event.get从队列中获取事件
之前我们就一直在用事件处理,那就是我们每次代码都带上的退出;for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit(0)
如果没有任何输入的情况下 event.get()返回的是个空列表
我们点击关闭pygame的窗口返回的事件是
[]
我们可以 遍历列表获取内部数据,
可以查看数据的类型是否是pygame的某种类型,比如退出
如果是这种类型的话,我们可以执行相对于的操作。
我们来说下键盘操作elif event.type == pygame.KEYDOWN :
if event.key == pygame.K_UP:
y -= 1
在事件中判断类型是否是 pygame.KEYDOWN
判断键位是否是我们需要的那个键位
执行对应的操作
但是上面这中操作有个问题就是,我们每次按下这个键之后只能执行一次操作;
我们要移动对象的时候想要按下后连续移动,
我们就需要用到 pygame.key 这个是在pygame 2.0的新功能
该模块包含处理键盘的功能。
按下和释放键盘按钮时,事件队列获取pygame.KEYDOWN和pygame.KEYUP事件。两个事件都有一个键属性,它是表示键盘上每个键的整数ID。
该pygame.KEYDOWN事件具有其他属性unicode和 scancode。unicode表示单个字符串,即输入的完全翻译字符。这考虑了移位和组合键。scancode表示特定于平台的密钥代码。这可能与键盘不同,但对于像多媒体键这样的奇怪键的键选择很有用。
pygame.KEYDOWN。该属性text包含输入。
有许多键盘常量,它们用于表示键盘上的键。以下是所有键盘常量的列表:KeyASCII ASCII Common Name
K_BACKSPACE \b backspace
K_TAB \t tab
K_CLEAR clear
K_RETURN \r return
K_PAUSE pause
K_ESCAPE ^[ escape
K_SPACE space
K_EXCLAIM ! exclaim
K_QUOTEDBL " quotedbl
K_HASH # hash
K_DOLLAR $ dollar
K_AMPERSAND & ampersand
K_QUOTE quote
K_LEFTPAREN ( left parenthesis
K_RIGHTPAREN ) right parenthesis
K_ASTERISK * asterisk
K_PLUS + plus sign
K_COMMA , comma
K_MINUS - minus sign
K_PERIOD . period
K_SLASH / forward slash
K_0 0 0
K_1 1 1
K_2 2 2
K_3 3 3
K_4 4 4
K_5 5 5
K_6 6 6
K_7 7 7
K_8 8 8
K_9 9 9
K_COLON : colon
K_SEMICOLON ; semicolon
K_LESS < less-than sign
K_EQUALS = equals sign
K_GREATER > greater-than sign
K_QUESTION ? question mark
K_AT @ at
K_LEFTBRACKET [ left bracket
K_BACKSLASH \ backslash
K_RIGHTBRACKET ] right bracket
K_CARET ^ caret
K_UNDERSCORE _ underscore
K_BACKQUOTE ` grave
K_a a a
K_b b b
K_c c c
K_d d d
K_e e e
K_f f f
K_g g g
K_h h h
K_i i i
K_j j j
K_k k k
K_l l l
K_m m m
K_n n n
K_o o o
K_p p p
K_q q q
K_r r r
K_s s s
K_t t t
K_u u u
K_v v v
K_w w w
K_x x x
K_y y y
K_z z z
K_DELETE delete
K_KP0 keypad 0
K_KP1 keypad 1
K_KP2 keypad 2
K_KP3 keypad 3
K_KP4 keypad 4
K_KP5 keypad 5
K_KP6 keypad 6
K_KP7 keypad 7
K_KP8 keypad 8
K_KP9 keypad 9
K_KP_PERIOD . keypad period
K_KP_DIVIDE / keypad divide
K_KP_MULTIPLY * keypad multiply
K_KP_MINUS - keypad minus
K_KP_PLUS + keypad plus
K_KP_ENTER \r keypad enter
K_KP_EQUALS = keypad equals
K_UP up arrow
K_DOWN down arrow
K_RIGHT right arrow
K_LEFT left arrow
K_INSERT insert
K_HOME home
K_END end
K_PAGEUP page up
K_PAGEDOWN page down
K_F1 F1
K_F2 F2
K_F3 F3
K_F4 F4
K_F5 F5
K_F6 F6
K_F7 F7
K_F8 F8
K_F9 F9
K_F10 F10
K_F11 F11
K_F12 F12
K_F13 F13
K_F14 F14
K_F15 F15
K_NUMLOCK numlock
K_CAPSLOCK capslock
K_SCROLLOCK scrollock
K_RSHIFT right shift
K_LSHIFT left shift
K_RCTRL right control
K_LCTRL left control
K_RALT right alt
K_LALT left alt
K_RMETA right meta
K_LMETA left meta
K_LSUPER left Windows key
K_RSUPER right Windows key
K_MODE mode shift
K_HELP help
K_PRINT print screen
K_SYSREQ sysrq
K_BREAK break
K_MENU menu
K_POWER power
K_EURO Euro
键盘还有一个修饰符状态列表,可以通过按位对它们进行组合来组装。KMOD_NONE, KMOD_LSHIFT, KMOD_RSHIFT, KMOD_SHIFT, KMOD_CAPS,
KMOD_LCTRL, KMOD_RCTRL, KMOD_CTRL, KMOD_LALT, KMOD_RALT,
KMOD_ALT, KMOD_LMETA, KMOD_RMETA, KMOD_META, KMOD_NUM, KMOD_MODE
获取所有键盘按钮的状态
pygame.key.get_pressed()——返回一系列布尔值,表示键盘上每个键的状态。使用键常量值来索引数组。True值表示按下该按钮。
我们可以判断这个按键是否为真,如果为真则表示按下这个按键key_list = pygame.key.get_pressed()
if key_list[pygame.K_UP]:
y -= 1
elif key_list[pygame.K_DOWN]:
y += 1
elif key_list[pygame.K_LEFT]:
x -= 1
elif key_list[pygame.K_RIGHT]:
x += 1
这样的话,我们按下某个按键不松开的时候就可以一直移动某个对象了。
python键盘事件_Python之pygame学习键盘事件操作(9)相关推荐
- python pygame模块按键延迟_Python之pygame学习键盘事件操作(9)
pygame键盘事件操作 ✕ 什么是事件呢?按下键盘某个按键,鼠标移动,包括点击关闭按钮都可以算是事件操作. pygame中事件模块是pygame.event,官方说法是用于与事件和队列进行交互. 不 ...
- python鼠标事件_Python之pygame的鼠标事件
鼠标 当显示模式设置后,事件队列就会开始收到鼠标事件.当按下和释放鼠标的按键时,会产生 pygame.MOUSEBUTTONDOWN和pygame.MOUSEBUTTONUP事件.这些事件包含一个bu ...
- python 捕获鼠标点击事件_Python捕捉和模拟鼠标事件的方法
本文实例讲述了Python捕捉和模拟鼠标事件的方法.分享给大家供大家参考.具体分析如下: 这个假期玩了不少galgame,不过有些很老的游戏没有自动运行模式,点击鼠标又太伤按键了,于是想把滚动鼠标滚轮 ...
- python怎样画动态文字_Python之pygame学习绘制文字制作滚动文字
pygame绘制文字 ✕ 今天来学习绘制文本内容,毕竟游戏中还是需要文字对玩家提示一些有用的信息. 字体常用的不是很多,在pygame中大多用于提示文字,或者记录分数等事件. 字体绘制基本分为以下几个 ...
- python keyboard库_python库 pywinio虚拟键盘使用
NOTICE: You must have a ps/2 keyboard connected to your PC if you test on win10 or later, otherwise ...
- python 控制鼠标和键盘输入_python:控制鼠标和键盘
# #_*_ coding:UTF-8 _*_ importwin32apiimportwin32conimportwin32guifrom ctypes import * importtime VK ...
- python获取游戏窗口_python中pygame针对游戏窗口的显示方法实例分析(附源码)
本文实例讲述了python中pygame针对游戏窗口的显示方法.分享给大家供大家参考,具体如下: 在这篇教程中,我将给出一个demo演示: 当我们按下键盘的'f'键的时候,演示的窗口会切换到全屏显示和 ...
- 学python工作中_Python -- 我工作学习中的好帮手
最近在工作中,我需要在Solaris上写很多测试或者辅助工作的脚本.因为单位只推荐使用Perl或者Python,所以我不能选择我最喜欢的Ruby,当然我不会去选择Perl(不是说Perl不好,只是我不 ...
- python引流_Python为什么值得学习?(下)
「我能用Python做什么事呢?」「Python为什么这么红?」 关于这些问题,上次已经谈过一些,还没看过上篇的朋友请笑纳- 「我能用Python做什么事呢?」「Python为什么这么红?」 相信这些 ...
最新文章
- linux脚本或关系表达,Shell运算符:Shell算数运算符、关系运算符、布尔运算符、字符串运算符等...
- MTD/MT/MDD/MD以及LIB/DLL之间的一些联系和问题
- 利用ssh-agent提升ansible使用的方便及安全性
- 错过校招_您可能错过的Web优化技巧
- 总结几点Quartz的经验
- 新手入坑自动驾驶,我是这么学习的......
- jquery内核学习(3)--作用域分割(下)
- SQL Sever — 表的操作
- [NOI2003]Editor [AHOI2006]文本编辑器editor BZOJ1507BZOJ1269
- python入门区块链技术_区块链教程
- dos命令中DATE:~0,10输出日期格式名称格式/改为-
- 电脑上怎么看网络丢包/网络延时
- verilog——三八译码器
- 面经-应届生秋招上岸笔记(低难度 带项目版)
- [每日一氵] openCV drawMatches 函数中 flag 用法
- 使用JS判断日期的有效性
- oracle 的编码,Oracle 编码格式
- 消防应急照明和疏散指示系统在城市隧道中的应用
- 【Redis】Redis数据结构与对象(一)简单动态字符串(SDS)
- 【数学建模】-多元线性回归分析