Pygame 官方文档 - pygame.key

2023-11-05

pygame.key

与键盘相关的 Pygame 模块。

pygame.key.get_focused() — 当窗口获得键盘的输入焦点时返回 True
pygame.key.get_pressed() — 获取键盘上所有按键的状态
pygame.key.get_mods() — 检测是否有组合键被按下
pygame.key.set_mods() — 临时设置某些组合键为被按下状态
pygame.key.set_repeat() — 控制重复响应持续按下按键的时间
pygame.key.get_repeat() — 获取重复响应按键的参数
pygame.key.name() — 获取按键标识符对应的名字
便捷入口:查看 key 属性 | 查看 mod 属性
        该模块包含处理与键盘操作相关的函数。当键盘按键被按下和释放时,事件队列将获得 pygame.KEYDOWN 和 pygame.KEYUP 事件消息。这两个消息均包含 key 属性,是一个整数的 id,代表键盘上具体的某个按键。
        pygame.KYEDOWN 事件还有个额外的属性 unicode 和 scancode。unicode 代表一个按键翻译后的 Unicode 编码,这包含 shift 按键和组合键。scancode 是扫描码,不同键盘间该值可能不同。不过这对于特殊按键像多媒体键的选择是有用的。
        小甲鱼温馨提示:当键盘按下的时候,键盘会发送一个扫描码给系统。扫描码是键盘反馈哪一个按键被按下的方式,不同类型的键盘扫描码不同。再由系统调用相应的函数将其转换为统一的 Unicode 编码。

key 属性的值是一个数字,为了方便使用,Pygame 将这些数字定义为以下这些常量:

KeyASCII ASCII 描述
K_BACKSPACE \b 退格键(Backspace)
K_TAB \t 制表键(Tab)
K_CLEAR 清楚键(Clear)
K_RETURN \r 回车键(Enter)
K_PAUSE 暂停键(Pause)
K_ESCAPE ^[ 退出键(Escape)
K_SPACE 空格键(Space)
K_EXCLAIM ! 感叹号(exclaim)
K_QUOTEDBL " 双引号(quotedbl)
K_HASH # 井号(hash)
K_DOLLAR $ 美元符号(dollar)
K_AMPERSAND & and 符号(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 符号(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 0(小键盘)
K_KP1 1(小键盘)
K_KP2 2(小键盘)
K_KP3 3(小键盘)
K_KP4 4(小键盘)
K_KP5 5(小键盘)
K_KP6 6(小键盘)
K_KP7 7(小键盘)
K_KP8 8(小键盘)
K_KP9 9(小键盘)
K_KP_PERIOD . 句号(小键盘)
K_KP_DIVIDE / 除号(小键盘)
K_KP_MULTIPLY * 乘号(小键盘)
K_KP_MINUS - 减号(小键盘)
K_KP_PLUS + 加号(小键盘)
K_KP_ENTER \r 回车键(小键盘)
K_KP_EQUALS = 等于号(小键盘)
K_UP 向上箭头(up arrow)
K_DOWN 向下箭头(down arrow)
K_RIGHT 向右箭头(right arrow)
K_LEFT 向左箭头(left arrow)
K_INSERT 插入符(insert)
K_HOME Home 键(home)
K_END 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 右边的 shift 键(right shift)
K_LSHIFT 左边的 shift 键(left shift)
K_RCTRL 右边的 ctrl 键(right ctrl)
K_LCTRL 左边的 ctrl 键(left ctrl)
K_RALT 右边的 alt 键(right alt)
K_LALT 左边的 alt 键(left alt)
K_RMETA 右边的元键(right meta)
K_LMETA 左边的元键(left meta)
K_LSUPER 左边的 Window 键(left windows key)
K_RSUPER 右边的 Window 键(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)

还有一个 mod 属性,用于描述组合键状态。

以下是组合键的常量定义:

KeyASCII 描述
KMOD_NONE 木有同时按下组合键
KMOD_LSHIFT 同时按下左边的 shift 键
KMOD_RSHIFT 同时按下右边的 shift 键
KMOD_SHIFT 同时按下 shift 键
KMOD_CAPS 同时按下大写字母锁定键
KMOD_LCTRL 同时按下左边的 ctrl 键
KMOD_RCTRL 同时按下右边的 ctrl 键
KMOD_CTRL 同时按下 ctrl 键
KMOD_LALT 同时按下左边的 alt 键
KMOD_RALT 同时按下右边的 alt 键
KMOD_ALT 同时按下 alt 键
KMOD_LMETA 同时按下左边的元键
KMOD_RMETA 同时按下右边的元键
KMOD_META 同时按下元键
KMOD_NUM 同时按下数字键盘锁定键
KMOD_MODE 同时按下模式转换键

小甲鱼温馨提示:如果 mod & KMOD_CTRL 是真的话,表示用户同时按下了 Ctrl 键。
 

pygame.key.get_focused()

当窗口获得键盘的输入焦点时返回 True。
get_focused() -> bool
当窗口获得键盘的输入焦点时返回 True,如果窗口需要确保不失去键盘焦点,可以使用 pygame.event.set_grab(True) 独占所有的输入接口。
小甲鱼温馨提示:注意,这样做你就无法将鼠标移出窗口客户区了,但你仍然可以通过 Ctrl - Alt - Delete 热键“解围”。
搜索pygame.key.get_focused的示例

pygame.key.get_pressed()

获取键盘上所有按键的状态。
get_pressed() -> bools
返回一个由布尔类型值组成的序列,表示键盘上所有按键的当前状态。使用 key 常量作为索引,如果该元素是 True,表示该按键被按下。
使用该函数获取一系列按钮被按下的状态,并不能正确的获取用户输入的文本。因为你无法知道用户按键的被按下的顺序,并且快速的连续按下键盘可能无法完全被捕获(在两次调用 pygame.key.get_pressed() 的过程中被忽略),也无法将这些按下的按键完全转化为字符值。实现此功能可以通过捕获 pygame.KEYDOWN 事件消息来实现。
搜索pygame.key.get_pressed的示例

pygame.key.get_mods()

检测是否有组合键被按下。
get_mods() -> int
返回一个包含所有组合键位掩码的整数。使用位操作符 & 你可以检测某个组合键是否被按下。
小甲鱼温馨提示:假如 pygame.key.get_mods() 返回值存放在 mods 变量中,如果 mods & KMOD_CTRL 为 True,表示 ctrl 键正被按下。
搜索pygame.key.get_mods的示例

pygame.key.set_mods()

临时设置某些组合键为被按下状态。
set_mods(int) -> None
创建一个位掩码整数,包含你需要设置为被按下状态的组合键。
小甲鱼温馨提示:比如我们需要设置 ctrl 和 alt 组合键为按下状态,则可以 mods = KMOD_CTRL | KMOD_ALT,然后调用 pygame.key.set_mods(mods),这样尽管用户没有按下 ctrl 和 alt 组合键,它们依然是显示被按下状态。
搜索pygame.key.set_mods的示例

pygame.key.set_repeat()

控制重复响应持续按下按键的时间。
set_repeat() -> None
set_repeat(delay, interval) -> None
当开启重复响应按键,那么用户持续按下某一按键,就会不断产生同一 pygame.KEYDOWN 事件。delay 参数设置多久后(单位是毫秒)开始发送第一个 pygame.KEYDOWN 事件。interval 参数设置发送两个事件之间的间隔。如果不传入任何参数,表示取消重复响应按键。
搜索pygame.key.set_repeat的示例

pygame.key.get_repeat()

获取重复响应按键的参数。
get_repeat() -> (delay, interval)
当开启重复响应按键,那么用户持续按下某一按键,就会不断产生同一 pygame.KEYDOWN 事件。返回值是一个二元组,第一个元素 delay 表示多久后(单位是毫秒)开始发送第一个 pygame.KEYDOWN 事件。第二个元素 interval 表示发送两个事件之间的间隔。
默认情况下重复响应按键是没有开启的。
Pygame 1.8 新增加的。
搜索pygame.key.get_repeat的示例

pygame.key.name()

获取按键标识符对应的名字。
name(key) -> string
获取一个按键标识符对应的字符串描述。
搜索pygame.key.name的示例
 
以上文档,感谢鱼C论坛的分享:[Pygame] key | Pygame中文文档

点我回顶部

 
 
 
 
 
 
 
Fin.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pygame 官方文档 - pygame.key 的相关文章

  • Pygame水波纹效果

    我已经用 Google 搜索过它 但没有现成的脚本 与 Flash 上的相同效果相反 我已经检查过算法水效应解释 http www gamedev net page resources technical graphics programm
  • 如何检测网格单元格中的点击并更改其颜色?

    对 python 相当陌生 并试图重新创建我在学校玩的游戏 对于这个游戏 我需要随机产生这些炸弹 如果击中 这些炸弹会将您的银行帐户减少到零 并将方块的炸弹方块的颜色更改为红色 而安全的则变为绿色 我遇到的问题是 我想将炸弹方块的颜色改为红
  • pygame 在 cygwin 中运行 - 没有可用的视频设备?

    我使用的是带有 Cygwin 版本的 Windows 7 Professional 64 位 CYGWIN NT 6 1 WOW64 1 7 9 0 237 5 3 2011 03 29 10 10 i686 Cygwin 我使用 cygw
  • Python Pygame 游戏灯光

    我正在制作一款 2D 横向卷轴游戏 游戏中的一个物品是火炬 我有一个手臂可以旋转的玩家 我们可以获取手臂的角度 我正在寻找跟随手臂角度的三角形光束形状 我有一些想法 比如在整个屏幕上放置一个 alpha 图像 并根据手臂角度单独从每个像素中
  • 适用于 python 2.7.3 的 pygame

    我已经在 Windows 7 上安装了 python 2 7 3 现在我想要 pygame 我什至安装了 pygame 1 92 a0 但它似乎不起作用 有人可以帮忙解决这个问题吗 我也尝试过使用 pygame 1 9 1 但是当我在 gu
  • PyGame:文本未出现

    我正在遵循教程 我试图让我的文本出现在屏幕上 这是我的代码 但文本不会出现 from future import division import math import sys import pygame class MyGame obje
  • Pygame.mixer 模块丢失?

    我正在尝试为朋友制作一个小程序 它需要运行 wav 文件 当我在 python 中运行它时它工作正常 但是当我在 py2exe 中编译它时它给了我这个 gt phone exe 23 RuntimeWarning use mixer DLL
  • pygame.display.update() 错误:视频系统未初始化

    import pygame from pygame locals import def main global FPSCLOCK DISPLAYSURF BASICFONT PLAY SURF PLAY RECT NEW SURF NEW
  • 如何通过 while/for 循环创建类的许多精确实例(以访问其属性)?

    我正在尝试使用 pygame 制作 atari 突破风格游戏 并且我希望可破坏的块是具有某些属性的对象 我可以随着游戏的进行而更改这些属性 因此 我创建了一个 Block 类和一个后续函数 该函数多次循环遍历该类 将实例分配给列表 我遇到的
  • Pygame 中每次点击都会触发两次跳转

    你好 我目前正在尝试在 pygame 中制作一个跳跃游戏 很像 chrome 恐龙游戏 我编写了一些简单的代码来绘制一个正方形并使其跳跃 我将我的代码写在下面 我的问题是跳跃部分 每当我按下w 即跳跃按钮 时 方块就会跳跃多次 通常是2次
  • Pygame 中按钮内的进度条

    期望的行为是 当用户将鼠标放在按钮上时 会出现深灰色进度条并开始以恒定的速度递增 我希望能够确定它完全充满需要多长时间 比如 2 秒 如果在进度条达到 100 之前鼠标移出按钮 进度条应直接变为 0 如果条达到 100 程序应在终端中打印一
  • 当我尝试移动 Pygame 时,玩家回到初始位置

    当我移动玩家时 当我按住右箭头时 他会移动 10 个像素 当我释放按键时 他会返回到初始位置 顺便说一句 你不需要告诉我当我按右时他会向左移动 我知道 这是代码 import pygame pygame init WIDTH 1000 HE
  • Pygame 让对象追逐光标

    过去几个小时一直在做这个 试图制作一个小程序 其中图像追逐光标 到目前为止 我已经设法使图像直接位于光标上方并沿着该方向移动 然而 我需要的是图像真正 追逐 光标 因此它需要最初远离光标 然后在它后面运行 直到它位于鼠标之上 基本上 我遇到
  • 敌人不会在 pygame 中自行移动[重复]

    这个问题在这里已经有答案了 好吧 所以我的敌人只有在我移动角色时才会移动 但有时它也会完全从游戏窗口中产生 还有背景 玩家和敌人 在我按下移动按钮之前不会弹出 我对此感到非常抱歉 lmfao 也对我被告知将它们放在那里以提醒 wtf 的文本
  • 带参数和不带参数的 super() 有什么区别?

    我遇到了一个使用的代码super 方法有两种不同的方式 我不明白逻辑上有什么区别 我现在正在学习pygame模块 我有一个任务来创建一个类Ball它继承自Sprite这是一个来自pygame模块 如果我没记错的话 我遇到了这段代码 impo
  • 导入 pygame.font 失败

    import pygame对我来说效果很好 但是import pygame font失败并出现错误 ImportError dlopen Library Frameworks Python framework Versions 2 7 li
  • 当用户点击无框架 pygame 窗口时如何移动它?

    我想创建一个没有框架的 pygame 窗口 当用户单击它并移动鼠标时该窗口会移动 我尝试了这个脚本 但是当我单击窗口时 打印 0 而不是 1 我的脚本有问题 coding utf 8 import pygame from pygame lo
  • 一旦玩家与矩形对象发生碰撞,如何从屏幕上删除它?

    in draw 函数 我试图在玩家 pos 敌人 pos 时删除矩形对象 但 del 不起作用 有什么办法可以彻底删除敌人的物体吗 是否有内置的 pygame 函数可以删除我不知道的对象 draw player def draw enemy
  • Pygame - 使用 SurfArray 将某种颜色的像素重新着色为另一种颜色(数组切片问题)

    我正在尝试为游戏制作调色板交换功能 并且正在尝试找到一种将某种颜色的像素颜色更改为另一种颜色的方法 我已经能够使用我在教程中找到的这个函数使所有像素具有相同的颜色 def color surface self surface red gre
  • 在 pygame 中添加/创建下拉选择框的提示

    我正在 pygame 中制作一个游戏 需要有一个下拉框和单选按钮来选择选项 任何有关如何进行此操作的提示将不胜感激 Regards 我建议为图形 UI 元素实现一个类 该类有一个构造函数 init 定义所有必需的属性和所有必需的状态 ADr

随机推荐

  • 真正解决Pandas写入excel的多sheet问题

    真正解决Pandas写入excel的多sheet问题 遇到需要利用pandas的to excel 在同一个Excel文件中 循环在不同的sheet中写入数据 但查阅大量资料 基本都无法利用for循环 在 sheet1 sheet2 shee
  • java中native的用法

    Java开发中会碰到声明为 native的方法 如 public native int hashCode 这是一个native方法 为什么存在native方法呢 Java不是完美的 Java的不足除了体现在运行速度上要比传统的C 慢许多之外
  • 数学建模写作模板及排版经验(超全)

    开篇福利分享 链接 https pan baidu com s 10hJMmLw8pQ5r3csnnySH g pwd msy3 提取码 msy3 论文是建模中最后的一环也是最关键的一环 这环做好了那就圆满了 做砸了全功尽弃 了 关于怎么写
  • Raspberry Pi和Python OpenCV人工神经网络和卷积神经网络演示及其机器学习微型框架

    首先 主要讨论和演示机器学习中使用的基本数据模型及其演示 其次开始的深度学习讨论 然后 探讨 ANN 和 CNN 如何预测结果 例如 当呈现未知图像时 CNN 将尝试将其识别为属于它已被训练识别的类别之一 Raspberry Pi机器学习
  • 十三、Ubuntu18.04下配置C++版本的mediapipe

    十三 Ubuntu18 04下配置C 版本的mediapipe 1 官方教程 2 记录我的配置过程 2 1 安装Bazelisk 2 2 安装mediapipe库 2 3 安装OpenCv和FFmpeg 2 4 运行helloworld C
  • Airtest简单使用及采坑记录

    下载地址 http airtest netease com 打开方式 打开下载的文件夹 找到AirtestIDE exe双击即可打开 连接手机 USB连接方式 将电脑与手机用USB连接 打开手机开发者模式的USB调试 右上角出现设备信息后点
  • 【云原生之Docker实战】使用docker搭建Chemex资产管理系统

    云原生之Docker实战 使用docker搭建Chemex资产管理系统 一 Chemex介绍 1 Chemex简介 2 Chemex特点 二 检查dokcer版本 三 创建mysql容器 四 测试数据库连接 五 下载chemex镜像 六 创
  • 让AD 自动导出 3D效果照片到项目文件路径下,方便查看

    让AD自动在项目目录下生成PCB的3D照片 分辨率 设为最高 视图可以自定义或者从上到下俯视 颜色配置默认绿色 也可以选择当前视图 确定即可 这样查看起来非常方便 不用再打开文件查看了
  • 数据库设计(一对一,一对多,多对多)关联查询

    表与表之间的关系 1 一对一 需要两个表 当然做项目时为了省空间 通常只建一个表 如果要实现一对一的查询 可以建两个视图 示例如下 1 建物理表 初始化数据 CREATE TABLE person id INT NAME VARCHAR 1
  • 什么是CSMA/CD

    英文全称 Carrier Sense Multiple Access Collision Detection 载波侦听多路访问 冲突检测协议 CSMA CD 这种协议已广泛应用于局域网中 是广播型信道中采用一种随机访问技术的竞争型访问方法
  • windows下更改鼠标滚轮方向

    本来鼠标滚轮的方向无所谓 正确 与否 win下和mac下方向相反 只要习惯即可 但从win下切换到mac后 本来是想把鼠标方向调成跟win下一致 结果这么一反转 连多指手势的 左右 都反了 苹果 算你狠 于是我只有习惯所谓的 自然 滚动 习
  • 二维数组定义

    二维数组定义 1 方法一 int a new int m for int i 0 i
  • XD插件PhotoSplash2的用法

    1 安装 略 2 在画布上插入5个矩形 3 全部选中 并点击插件photosplash2 4 查询框中输入 flower 自动按照选中的矩形数量 选择照片 按 Apply 5 photos 5 效果
  • 如何面试Python 后端工程师(持续更新)

    看到 如何面试Python后端工程师 这个问题下一位大牛罗列的问题 感觉挺有价值 现在记在这里 找出这些问题的答案 持续更新 一 语言 1 推荐一本看过最好的python书籍 拉开话题好扯淡 目前所知道的 看过的就是 Python 核心编程
  • drop、truncate和delete的区别

    drop truncate和delete的区别 1 DELETE语句执行删除的过程是每次从表中删除一行 并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作 TRUNCATE TABLE 则一次性地从表中删除所有的数据并不把
  • 直接插入排序(C)

    直接插入排序 算法描述 所谓直接插入排序 就是从插入第1个数值开始 存在第0位 直至插入第n个数值 当插入第n个数值时 前面n 1个数值已经是排好序的 插入完第n个数值时排序结束 假设 数据集合为N 有n个数据 i 1 为第1个数值 第一步
  • 关于Qt 中update()和repaint()的区别

    void QWidget repaint int x int y int w int h bool erase TRUE 槽 通过立即调用paintEvent 来直接重新绘制窗口部件 如果erase为真 Qt在paintEvent 调用之前
  • RPM安装和卸载

    rpm 是redhat公司出的一个包管理工具 redhat package manager由于我们这是虚拟机 它有光驱 我们可以把光驱挂载一下mount dev cdrom mnt cd mnt lscd packages 这个目录下红色的
  • 支付宝数字化经营能加盟吗?真实情况原来是这样!(深度好文)

    去年支付宝的刷脸支付之火相信大家都知道 项目是个好项目 就是被那批做微商会销的人玩坏了 他们硬是把刷脸支付玩成了一个传销骗局 导致现在人家一说刷脸支付创业项目 就说是个骗局 连正规公司都受到了牵连 典型的一粒老鼠屎坏了锅粥 虽然刷脸支付肯定
  • Pygame 官方文档 - pygame.key

    pygame key 与键盘相关的 Pygame 模块 pygame key get focused 当窗口获得键盘的输入焦点时返回 True pygame key get pressed 获取键盘上所有按键的状态 pygame key g