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. linux脚本或关系表达,Shell运算符:Shell算数运算符、关系运算符、布尔运算符、字符串运算符等...
  2. MTD/MT/MDD/MD以及LIB/DLL之间的一些联系和问题
  3. 利用ssh-agent提升ansible使用的方便及安全性
  4. 错过校招_您可能错过的Web优化技巧
  5. 总结几点Quartz的经验
  6. 新手入坑自动驾驶,我是这么学习的......
  7. jquery内核学习(3)--作用域分割(下)
  8. SQL Sever — 表的操作
  9. [NOI2003]Editor [AHOI2006]文本编辑器editor BZOJ1507BZOJ1269
  10. python入门区块链技术_区块链教程
  11. dos命令中DATE:~0,10输出日期格式名称格式/改为-
  12. 电脑上怎么看网络丢包/网络延时
  13. verilog——三八译码器
  14. 面经-应届生秋招上岸笔记(低难度 带项目版)
  15. [每日一氵] openCV drawMatches 函数中 flag 用法
  16. 使用JS判断日期的有效性
  17. oracle 的编码,Oracle 编码格式
  18. 消防应急照明和疏散指示系统在城市隧道中的应用
  19. 【Redis】Redis数据结构与对象(一)简单动态字符串(SDS)
  20. 【数学建模】-多元线性回归分析

热门文章

  1. 苹果手机怎么无线投屏,AirPlay怎么连接电脑
  2. 轮播图制作(htmlcssjs)
  3. 【OpenCV入门教程之七】 玩转OpenCV源代码:生成OpenCV工程解决方案与OpenCV源码编译
  4. 数据可视化如何作图-图表切片分析
  5. 电动汽车电池管理系统预充电阻及预充时间的计算
  6. 前端学习之select控件的使用2,省市县三级联动选择,select控件属性、方法、事件的综合应用...
  7. Java判断星座的小玩意儿
  8. 机器学习-周志华-支持向量机的逻辑详解
  9. 实现Android底层驱动开发并裁剪定制Android操作系统
  10. 【读书笔记】《亲密关系》