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)相关推荐

  1. python pygame模块按键延迟_Python之pygame学习键盘事件操作(9)

    pygame键盘事件操作 ✕ 什么是事件呢?按下键盘某个按键,鼠标移动,包括点击关闭按钮都可以算是事件操作. pygame中事件模块是pygame.event,官方说法是用于与事件和队列进行交互. 不 ...

  2. python鼠标事件_Python之pygame的鼠标事件

    鼠标 当显示模式设置后,事件队列就会开始收到鼠标事件.当按下和释放鼠标的按键时,会产生 pygame.MOUSEBUTTONDOWN和pygame.MOUSEBUTTONUP事件.这些事件包含一个bu ...

  3. python 捕获鼠标点击事件_Python捕捉和模拟鼠标事件的方法

    本文实例讲述了Python捕捉和模拟鼠标事件的方法.分享给大家供大家参考.具体分析如下: 这个假期玩了不少galgame,不过有些很老的游戏没有自动运行模式,点击鼠标又太伤按键了,于是想把滚动鼠标滚轮 ...

  4. python怎样画动态文字_Python之pygame学习绘制文字制作滚动文字

    pygame绘制文字 ✕ 今天来学习绘制文本内容,毕竟游戏中还是需要文字对玩家提示一些有用的信息. 字体常用的不是很多,在pygame中大多用于提示文字,或者记录分数等事件. 字体绘制基本分为以下几个 ...

  5. python keyboard库_python库 pywinio虚拟键盘使用

    NOTICE: You must have a ps/2 keyboard connected to your PC if you test on win10 or later, otherwise ...

  6. python 控制鼠标和键盘输入_python:控制鼠标和键盘

    # #_*_ coding:UTF-8 _*_ importwin32apiimportwin32conimportwin32guifrom ctypes import * importtime VK ...

  7. python获取游戏窗口_python中pygame针对游戏窗口的显示方法实例分析(附源码)

    本文实例讲述了python中pygame针对游戏窗口的显示方法.分享给大家供大家参考,具体如下: 在这篇教程中,我将给出一个demo演示: 当我们按下键盘的'f'键的时候,演示的窗口会切换到全屏显示和 ...

  8. 学python工作中_Python -- 我工作学习中的好帮手

    最近在工作中,我需要在Solaris上写很多测试或者辅助工作的脚本.因为单位只推荐使用Perl或者Python,所以我不能选择我最喜欢的Ruby,当然我不会去选择Perl(不是说Perl不好,只是我不 ...

  9. python引流_Python为什么值得学习?(下)

    「我能用Python做什么事呢?」「Python为什么这么红?」 关于这些问题,上次已经谈过一些,还没看过上篇的朋友请笑纳- 「我能用Python做什么事呢?」「Python为什么这么红?」 相信这些 ...

最新文章

  1. numpy批量iou
  2. bootstrap学习笔记(1)基础段落,表格的实现
  3. 计算机机房工程规划方案,机房工程规划书文档.docx
  4. 跟我学android-Notification
  5. 2016年小升初海淀区全部初中排名分析
  6. 数学建模论文写作方法
  7. Windows XP中的通用即插即用
  8. snmp v3 参数_SNMPv3 配置及snmpwalk命令信息获取
  9. ifonts提取下载ttf文件
  10. Visual Studio 2015 中文社区版下载
  11. WordPress插件 UberGrid 高级相册图片分享中文插件[更新至v2.0.13]
  12. 工程数学 傅里叶变换 狄拉克函数
  13. 树莓派系列二:openCV之头像添加国旗
  14. 如何一键关闭win安全中心(Windows Defender )
  15. laravel Migration与Seeder的用法
  16. 利用google地图获取位置经纬度坐标
  17. Qt5 QFileDialog中文英文交界处乱码问题
  18. C语言编程-7_4 字符统计
  19. 百度Apollo自动驾驶_百度车载小程序
  20. python练习-给数组去重后元素的加序号

热门文章

  1. 游戏中的人工智能(一)
  2. Mellanox IB卡 虚拟化
  3. 昨夜MSN上偶遇伊人
  4. 智慧工地核心产品——未冲洗抓拍
  5. oracle 10046跟踪自己,使用oracle的10046事件跟踪SQL语句
  6. Cesium获取延长线
  7. 基于SpringBoot+vue的网上图书商城系统设计和实现
  8. 为什么Harris角点检测用特征值? 为什么Harris像素值变化量矩阵代表椭圆?【OpenCV】【计算机视觉】
  9. 贡院赶考品“怪”美食 海内外家庭千年古城寻年味
  10. 前端每日实战:125# 视频演示如何用纯 CSS 创作一个失落的人独自行走的动画...