目录

key模块

功能

方法详解

pygame.key.get_focused()

pygame.key.get_pressed()

pygame.key.get_mods()

pygame.key.set_mods()

pygame.key.set_repeat()

pygame.key.get_repeat()

pygame.key.name()

pygame.key.key_code()

pygame.key.start_text_input()

pygame.key.stop_text_input()

pygame.key.set_text_input_rect()

mouse模块

功能

方法详解

pygame.mouse.get_pressed()

pygame.mouse.get_pos()

pygame.mouse.get_rel()

pygame.mouse.set_pos()

pygame.mouse.set_visible()

pygame.mouse.get_visible()

pygame.mouse.get_focused()

pygame.mouse.set_cursor()

pygame.mouse.get_cursor()


key模块

功能

此模块包含处理键盘的功能。

1.按下和释放键盘按钮时, pygame.event 队列获取 pygame.KEYDOWN 以及 pygame.KEYUP 事件。这两个事件都有 key 和 mod 属性。

  • key:一个表示键盘上(每个)键的整数ID
  • mod:事件发生时处于按下状态的所有修改键的一个位掩码

2. pygame.KEYDOWN 事件具有其他属性: unicode and scancode

  • unicode:完全翻译的输入字符的单个字符串,考虑了shift键和组合键
  • scancode:平台的特定键代码,不同键盘的键代码可能不同,但对于奇怪键的选择(如多媒体键)很有用

New in pygame 2.0.0:pygame.TEXTINPUT事件优先于 pygame.KEYDOWN的 unicode属性。属性text 包含输入。

3.以下是所有用于表示键盘键的常量列表(from pygame.locals):

pygame
Constant      ASCII   Description
---------------------------------
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

4.还有一个将键盘按位或组合在一起的修改状态列表(from pygame.locals)。修改器信息包含在 pygame.KEYDOWN 和 pygame.KEYUP 事件的 mod 属性中。 mod 属性是事件发生时处于按下状态的所有修改键的位掩码。修饰符信息可以使用逐位和(AND)进行解码(除了 KMOD_NONE,应该使用equals ==进行比较)。

pygame
Constant      Description
-------------------------
KMOD_NONE     no modifier keys pressed
KMOD_LSHIFT   left shift
KMOD_RSHIFT   right shift
KMOD_SHIFT    left shift or right shift or both
KMOD_LCTRL    left control
KMOD_RCTRL    right control
KMOD_CTRL     left control or right control or both
KMOD_LALT     left alt
KMOD_RALT     right alt
KMOD_ALT      left alt or right alt or both
KMOD_LMETA    left meta
KMOD_RMETA    right meta
KMOD_META     left meta or right meta or both
KMOD_CAPS     caps lock
KMOD_NUM      num lock
KMOD_MODE     AltGr

方法详解

pygame.key.get_focused()

功能:如果显示接收到来自系统的键盘输入,则为真

属性:get_focused() -> bool

当显示窗口具有来自系统的键盘提示时,返回True。如果显示器需要确保不丢失键盘提示,则可以使用 pygame.event.set_grab()获取所有输入。

pygame.key.get_pressed()

功能:获取所有键盘按钮的状态

属性:get_pressed() -> bools

  1. 返回一系列布尔值,表示键盘上每个键的状态。使用键常量值索引数组。 True 值表示该按钮已按下。
  2. 使用此功能获取按钮列表不是处理用户文本输入的正确方法。无法知道按键的顺序,而且在两次调用 pygame.key.get_pressed()的过程中快速按键完全不会被注意到,也无法将这些按下的键转换为完全翻译的字符值。见 pygame.event 队列中 pygame.KEYDOWN 事件关于此功能的描述。

pygame.key.get_mods()

功能:确定要保留的修改键

属性:get_mods() -> int

返回一个整数表示所保存的所有修改键的位掩码。使用按位运算符可以测试是否按了特定的修改键。

pygame.key.set_mods()

功能:临时设置要按下的修改键

属性:set_mods(int) -> None

创建一个要施加到程序上的修饰键常量的位掩码。

pygame.key.set_repeat()

功能:控制重复按住的键

属性:

  • set_repeat() -> None
  • set_repeat(delay) -> None
  • set_repeat(delay, interval) -> None
  1. 启用键盘重复时,按住的键将生成多个 pygame.KEYDOWN事件。 delay参数是第一次重复发送 pygame.KEYDOWN 事件之前的毫秒数。在那之后,另一个 pygame.KEYDOWN 事件将每隔 interval 毫秒发送一次。如果提供了delay值,而未提供 interval值或值为0,则将设置 intervaldelay的值相同。
  2. 若要禁用键重复,请在没有参数或delay设置为0的情况下调用此函数。
  3. 当pygame初始化时,键重复被禁用。

提示:ValueError -- if delay or interval is < 0

Changed in pygame 2.0.0:如果 delayinterval 小于0,引发一个 ValueError(而不是pygame.error)。

pygame.key.get_repeat()

功能:查看重复按住的键

属性:get_repeat() -> (delay, interval)

获取重复键盘的 delayinterval值。参考 pygame.key.set_repeat()对这些值的说明。

New in pygame 1.8.

pygame.key.name()

功能:获取键盘标识符的名称

属性:name(key) -> string

从键盘按钮id常量中获取按钮的描述性名称。

pygame.key.key_code()

功能:从键盘名中获取键盘标识符

属性:key_code(name=string) -> int

从键的描述性名称获取键标识符代码。这将返回一个与K_* keycodes匹配的整数。例如:

>>> pygame.key.key_code("return") == pygame.K_RETURN
True
>>> pygame.key.key_code("0") == pygame.K_0
True
>>> pygame.key.key_code("space") == pygame.K_SPACE
True

提示:

  • ValueError -- if the key name is not known.
  • NotImplementedError -- if used with SDL 1.

New in pygame 2.0.0.

pygame.key.start_text_input()

功能:开始处理输入法组合

属性:start_text_input() -> None

  1. 开始接收pygame.TEXTEDITING 和 pygame.TEXTINPUT事件处理输入法(IME)。
  2. 在启动或更改IME组合时接收一个 pygame.TEXTEDITING事件。它包含合成textlength和编辑合成中的 start 位置。当提交合成(或接收到非输入法输入)时一个pygame.TEXTINPUT事件已生成。
  3. 普通pygame.TEXTINPUT事件不依赖于此方法。

New in pygame 2.0.0.

pygame.key.stop_text_input()

功能:停止处理输入法组合

属性:stop_text_input() -> None

  1. 停止接收pygame.TEXTEDITING 和 pygame.TEXTINPUT事件处理IME的。
  2. 普通 pygame.TEXTINPUT事件不依赖于此方法。

New in pygame 2.0.0.

pygame.key.set_text_input_rect()

功能:控制候选列表的位置

属性:set_text_input_rect(Rect) -> None

  1. 这将设置用于输入法键入的矩形。如果支持,它将控制候选列表的打开位置。
  2. 普通 pygame.TEXTINPUT事件不依赖于此方法。

New in pygame 2.0.0.

mouse模块

功能

此模块可用于获取鼠标设备的当前状态,还可以改变鼠标的系统光标。

  1. 设置显示模式后,事件队列将开始接收鼠标事件。当鼠标按钮按下和释放时生成 pygame.MOUSEBUTTONDOWNpygame.MOUSEBUTTONUP的事件。这些事件包含一个button属性,表示按下了哪个按钮。鼠标滚轮滚动时将生成 pygame.MOUSEBUTTONDOWNpygame.MOUSEBUTTONUP 事件。当车轮向上滚动时,按钮将设置为4;当车轮向下滚动时,按钮将设置为5。每当鼠标移动时,它会生成一个pygame.MOUSEMOTION事件。鼠标的移动被分解成小而精确的运动事件。当鼠标移动时,许多运动事件将被放置在队列中。未从事件队列中正确清除鼠标运动事件是事件队列填满的主要原因。
  2. 如果鼠标光标被隐藏,并且输入被捕捉到当前显示,则鼠标将进入虚拟输入模式,在该模式下,鼠标的相对移动永远不会被屏幕的边框阻止。查看函数pygame.mouse.set_visible() 和 pygame.event.set_grab() 获取配置。

pygame2中的鼠标滚轮行为

  • SDL2的SDL_MOUSEWHEEL事件具有鼠标滚轮行为的适当功能。SDL_MOUSEWHEEL取代了将鼠标滚动视为类似于按钮的类型的旧方法。新事件支持水平和垂直滚动移动(带符号的整数值表示滚动量)以及“翻转”方向(每个轴设置正值和负值表示被翻转)。阅读有关SDL2输入相关更改的详细信息:https://wiki.libsdl.org/MigrationGuide#Input
  • 在pygame2中,鼠标滚轮功能可以通过监听pygame.events.MOUSEWHEEL事件类型。当触发此事件时,开发人员可以使用pygame.event.get()获取Event对象。该对象可用于访问有关鼠标滚动条的数据。

示例如下:

# Taken from husano896's PR thread:
import pygame
from pygame.locals import *
pygame.init()
screen = pygame.display.set_mode((640,480))
clock = pygame.time.Clock()def main():while True:for event_var in pygame.event.get():if event_var.type == QUIT:pygame.quit()returnelif event_var.type == MOUSEWHEEL:print(event_var) # can access properties with prop notation# (ex: event_var.y)clock.tick(60)# Execute game:
main()

方法详解

pygame.mouse.get_pressed()

功能:获取鼠标按钮的状态

属性:get_pressed() -> (button1, button2, button3)

  1. 返回一个表示所有鼠标按钮状态的布尔值序列。如果值为真,则表示调用当前鼠标正在按下。
  2. 要获得所有鼠标事件,最好使用pygame.event.wait() 或 pygame.event.get()检查这些事件是否是MOUSEBUTTONDOWNMOUSEBUTTONUP或 MOUSEMOTION
  3. 在X11上,一些X服务器会使用中间按钮模拟。当同时单击按钮1和3时,可以发出2按钮事件。
  4. 记得在此函数之前调用函数pygame.event.get()。否则将无法正常运行。

pygame.mouse.get_pos()

功能:获取鼠标光标位置

属性:get_pos() -> (x, y)

返回鼠标光标的 X 和 Y位置。该位置是相对于显示器的左上角。光标位置可以位于显示窗口之外,但始终限制在屏幕上。

pygame.mouse.get_rel()

功能:获取鼠标移动量

属性:get_rel() -> (x, y)

返回自上次调用此函数以来在 XY中的移动量。鼠标光标的相对移动受屏幕边缘的限制,但请参见虚拟输入鼠标模式以了解解决此问题的方法。

pygame.mouse.set_pos()

功能:设置鼠标光标位置

属性:set_pos([x, y]) -> None

将当前鼠标位置设置为给定的参数。如果鼠标光标可见,它将跳转到新的坐标。移动鼠标将生成新的pygame.MOUSEMOTION事件。

pygame.mouse.set_visible()

功能:隐藏或显示鼠标光标

属性:set_visible(bool) -> bool

如果bool参数为true,则鼠标光标将可见。这将返回光标以前的可见状态(true/false)。

pygame.mouse.get_visible()

功能:获取鼠标光标的当前可见性状态。

get_visible() -> bool

如果鼠标光标当前可见,则返回True;如果鼠标光标不可见,则返回False。

New in pygame 2.0.0.

pygame.mouse.get_focused()

功能:检查显示器是否接收到鼠标输入

属性:get_focused() -> bool

  1. 当pygame接收到鼠标输入事件时返回true。
  2. 在窗口(window)模式时,此方法最有用。相反,在全屏(full-screen)模式下,此方法始终返回true。
  3. MS Windows下,具有鼠标焦点的窗口也具有键盘焦点。但在X-Windows下,一个窗口可以接收鼠标事件,另一个窗口可以接收键盘事件。 pygame.mouse.get_focused()指示pygame窗口是否接收鼠标事件。.

pygame.mouse.set_cursor()

功能:设置系统鼠标光标的图像

属性:set_cursor(size, hotspot, xormasks, andmasks) -> None

  1. 当鼠标光标可见时,它将使用给定的位掩码数组显示为黑白位图。size是一个包含光标宽度和高度的序列。hotspot是包含光标热点位置的序列。xormasks是包含游标xor数据掩码的字节序列。andmasks是一个包含光标位掩码数据的字节序列。
  2. 宽度必须是8的倍数,并且掩码数组必须是给定宽度和高度的正确大小。否则会引发异常。
  3. pygame.cursor文件用于帮助为系统光标创建默认和自定义掩码的模块。

pygame.mouse.get_cursor()

功能:获取系统鼠标光标的图像

属性:get_cursor() -> (size, hotspot, xormasks, andmasks)

  1. 获取有关鼠标系统光标的信息。返回值与传入的参数与pygame.mouse.set_cursor()相同。
  2. 此方法对于SDL2不可用,因为SDL2不提供实现此方法的底层代码。

整理自:

  • https://www.pygame.org/docs/ref/key.html
  • https://www.pygame.org/docs/ref/mouse.html

pygame中的键鼠(keymouse)模块相关推荐

  1. pygame中的特殊对象与模块

    目录 pygame模块概览 一.Surface对象 二.Rect对象 三.Color对象 四.pygame模块 五.locals模块 六.display模块 七.event模块 八.sprite模块 ...

  2. 在Node环境中模拟键鼠热键

    robot-cmd utomatically operate the keyboard and mouse, do not need gyp. const robot = require('robot ...

  3. Pygame按键编码及基本键鼠侦测

    Pygame按键编码及基本键鼠侦测 目录 Pygame按键编码 键鼠侦测 Pygame按键编码 按键 Pygame按键编码 回退 K_BACKSPACE 制表 K_TAB 清除 K_CLEAN 回车 ...

  4. 学习笔记——pygame最常用的15个模块

    1.Color类 class pygame.Color Pygame 中用于描述颜色的对象.Color(name) -> Color Color(r, g, b, a) -> Color ...

  5. pygame中文文档 三

    cursors | Pygame中文文档 pygame.cursors Pygame 中使用光标资源的模块. 函数 pygame.cursors.compile() -- 由纯字符串创建二进制光标数据 ...

  6. Unity --- 基本键鼠操作

    1.我们对于键盘和鼠标的点击操作相当于在输入数据,这些输入的数据都会被存储到对应的数据缓存区中供程序读取和调用 而我们所谓的游戏程序中的键鼠操作其实就是当我们通过键盘输入了特定数据之后,游戏程序马上从 ...

  7. python动画精灵_【python游戏编程之旅】第六篇---pygame中的Sprite(精灵)模块和加载动画...

    本系列博客介绍以python+pygame库进行小游戏的开发.有写的不对之处还望各位海涵. 直到现在我们已经学了很多pygame基础知识了,从这篇博客开始我们将会学习pygame中高级部分,更多和精灵 ...

  8. python动画精灵_Python游戏开发:pygame中的Sprite(精灵)模块和加载动画

    一.Sprite模块.sprite对象 在pygame.sprite模块里面包含了一个名为Sprite类,他是pygame本身自带的一个精灵.但是这个类的功能比较少,因此我们新建一个类对其继承,在sp ...

  9. 基于Pygame中Pygame模块的大战外星人

    一,引言 开发环境:Pycharm 操作系统:Windows 10 Pyhon版本:3.9.9 需要自行安装Pygame 3(必须)和Python(必须). 由于多次引用背景参数,建议不要更改文中的背 ...

最新文章

  1. Android怎么自定义listview布局,android – 如何将listView标头添加为自定义布局
  2. Tomcat无法访问中文路径的解决办法
  3. Gym-100935I Farm 计算几何 圆和矩形面积交
  4. 欧几里得范数_浅谈机器学习中的范数
  5. Tips--Multisim中压电传感器与电荷源的替代方案
  6. python实现目标检测_由浅入深:教你如何构建一个行人目标检测模型(Python)
  7. UI设计灵感|注册登录界面设计灵感
  8. jQuery Mobile中单选按钮radio的data-*选项
  9. 关于OpenCV使用遇到的问题集(多数为转载)
  10. jquery.form.js的重置表单增加hidden重置代码
  11. 安装flash cs6失败解决方案
  12. 疟疾识别图像数据集(27000张图像,2类图像)
  13. 手写文字识别的使用软件
  14. 袋鼠!沃尔沃的无人车就是搞不定这种动物
  15. 用Scrapy爬取笔趣阁小说
  16. Qt编译过程中报错误“multiple definition of ‘‘”
  17. 【必会系列】Switch详解
  18. Android app内部下载安装
  19. 网页登录Githup打不开解决办法
  20. 年度钜献,108个大数据文档PDF开放下载

热门文章

  1. 对话CMU计算机新院长:看好AI交叉创新出成果,建议新生先泛后专
  2. linux内核zfs,Linux使用ZFS文件系统
  3. 12306订票助手文件版本同步工具
  4. Android系统静默安装预置应用宝
  5. mapper批量插入
  6. 计算机网络(四)运输层(TCP/IP)
  7. 如何在ST官网下载固件包
  8. html 任务列表,任务列表.html
  9. # less(less is more, Than css)
  10. android自定义过渡动画,11.自定义过渡动画