无论什么游戏,少不了输入设备,键盘鼠标可能应用的是最多的,当然除了他们还有游戏手柄或者其他。今天我们就一起来学习一下经常用到的鼠标和键盘事件。

python当中经常用来做游戏的标准库为pygame,今天就一起来学习一下pygame当中的event事件。在了解之前先创建一个游戏窗口。

#创建游戏窗口

import pygame,sys

from pygame.locals import * #导入pygame当中的常量,省劲儿

pygame.init() #初始化pygame模块

canvas = pygame.display.set_mode((1000,600)) #设置一个长1000px,宽600px的界面。

canvas.fill((255,255,255)) #把界面填充为白色。三个数字分别代表红黄蓝(即RGB)

pygame.display.set_caption("大吉大利,今晚吃鸡") #设置界面的标题

#创建方法,当点击界面上的“x”号或者按下ESC键就可以将界面关掉

def handleEvent():

for event in pygame.event.get():

if event.type == QUIT or event.type == KEYDOWN and event.key == ESCAPE:

pygame.quit()

sys.exit()

while True:

pygame.display.update() #更新屏幕

handlEvent() #调用方法

界面效果如下:

界面就创建好了。

上面的代码并不是很难,我们先来了解一下

pygame.event.get()

这个方法从一个队列当中获取事件(点击、移动等)。获取到的时间列表当中,我们可以用for循环循环这个队列,然后再用event.type这个属性来检测鼠标或者键盘是否按下或者移动。

event.type == ?

它的属性有很多,下面的表格当中都可以替换“?”QUIT none

ACTIVEEVENT gain, state

KEYDOWN key, mod, unicode, scancode

KEYUP key, mod

MOUSEMOTION pos, rel, buttons

MOUSEBUTTONUP pos, button

MOUSEBUTTONDOWN pos, button

JOYAXISMOTION joy (deprecated), instance_id, axis, value

JOYBALLMOTION joy (deprecated), instance_id, ball, rel

JOYHATMOTION joy (deprecated), instance_id, hat, value

JOYBUTTONUP joy (deprecated), instance_id, button

JOYBUTTONDOWN joy (deprecated), instance_id, button

VIDEORESIZE size, w, h

VIDEOEXPOSE none

USEREVENT code

event.type 可以和前面的任何一个事件属性相等。具体代码如上面例子所示。

那几个常用的来做一下总结

QUIT:

event.type == QUIT #如果这样写的话,必须在开头用from pygame.locals import *

#否则你需要写成

event.type == pygame.QUIT

QUIT英语本意是放弃,退出。在编程当中也不例外。如果时间类型等于这个,我们就可以让pygame退出了 。即

pygame.quit()

KEYDOWN/KEYUP:键盘上有很多按钮,按钮按下或者松开都可以是时间。但是具体按那个键,可以通过event.key属性来获取具体按下了键盘上那个按键

event.key属性就有很多了,一起来看一下吧。

1) KeyASCII ASCII Common Name

2) K_BACKSPACE \b backspace

3) K_TAB \t tab

4) K_CLEAR clear

5) K_RETURN \r return

6) K_PAUSE pause

7) K_ESCAPE ^[ escape

8) K_SPACE space

9) K_EXCLAIM ! exclaim

10) K_QUOTEDBL " quotedbl

11) K_HASH # hash

12) K_DOLLAR $ dollar

13) K_AMPERSAND & ampersand

14) K_QUOTE quote

15) K_LEFTPAREN ( left parenthesis

16) K_RIGHTPAREN ) right parenthesis

17) K_ASTERISK * asterisk

18) K_PLUS + plus sign

19) K_COMMA , comma

20) K_MINUS - minus sign

21) K_PERIOD . period

22) K_SLASH / forward slash

23) K_0 0 0

24) K_1 1 1

25) K_2 2 2

26) K_3 3 3

27) K_4 4 4

28) K_5 5 5

29) K_6 6 6

30) K_7 7 7

31) K_8 8 8

32) K_9 9 9

33) K_COLON : colon

34) K_SEMICOLON ; semicolon

35) K_LESS < less-than sign

36) K_EQUALS = equals sign

37) K_GREATER > greater-than sign

38) K_QUESTION ? question mark

39) K_AT @ at

40) K_LEFTBRACKET [ left bracket

41) K_BACKSLASH \ backslash

42) K_RIGHTBRACKET ] right bracket

43) K_CARET ^ caret

44) K_UNDERSCORE _ underscore

45) K_BACKQUOTE ` grave

46) K_a a a

47) K_b b b

48) K_c c c

49) K_d d d

50) K_e e e

51) K_f f f

52) K_g g g

53) K_h h h

54) K_i i i

55) K_j j j

56) K_k k k

57) K_l l l

58) K_m m m

59) K_n n n

60) K_o o o

61) K_p p p

62) K_q q q

63) K_r r r

64) K_s s s

65) K_t t t

66) K_u u u

67) K_v v v

68) K_w w w

69) K_x x x

70) K_y y y

71) K_z z z

72) K_DELETE delete

73) K_KP0 keypad 0

74) K_KP1 keypad 1

75) K_KP2 keypad 2

76) K_KP3 keypad 3

77) K_KP4 keypad 4

78) K_KP5 keypad 5

79) K_KP6 keypad 6

80) K_KP7 keypad 7

81) K_KP8 keypad 8

82) K_KP9 keypad 9

83) K_KP_PERIOD . keypad period

84) K_KP_DIVIDE / keypad divide

85) K_KP_MULTIPLY * keypad multiply

86) K_KP_MINUS - keypad minus

87) K_KP_PLUS + keypad plus

88) K_KP_ENTER \r keypad enter

89) K_KP_EQUALS = keypad equals

90) K_UP up arrow

91) K_DOWN down arrow

92) K_RIGHT right arrow

93) K_LEFT left arrow

94) K_INSERT insert

95) K_HOME home

96) K_END end

97) K_PAGEUP page up

98) K_PAGEDOWN page down

99) K_F1 F1

100) K_F2 F2

101) K_F3 F3

102) K_F4 F4

103) K_F5 F5

104) K_F6 F6

105) K_F7 F7

106) K_F8 F8

107) K_F9 F9

108) K_F10 F10

109) K_F11 F11

110) K_F12 F12

111) K_F13 F13

112) K_F14 F14

113) K_F15 F15

114) K_NUMLOCK numlock

115) K_CAPSLOCK capslock

116) K_SCROLLOCK scrollock

117) K_RSHIFT right shift

118) K_LSHIFT left shift

119) K_RCTRL right ctrl

120) K_LCTRL left ctrl

121) K_RALT right alt

122) K_LALT left alt

123) K_RMETA right meta

124) K_LMETA left meta

125) K_LSUPER left windows key

126) K_RSUPER right windows key

127) K_MODE mode shift

128) K_HELP help

129) K_PRINT print screen

130) K_SYSREQ sysrq

131) K_BREAK break

132) K_MENU menu

133) K_POWER power

134) K_EURO euro

基本上就这些了。

最后在说一个关于按键的。就是按下一个按键一直做某一件事

可以这么做:

pygame.key.get_pressed()

取得所有键盘按键的状态

返回一组布尔值,表示键盘上每个按 键的状态。使用按键常量来索引这个数组。如果值为True,表示这个键被按下了。

keys_pressed = pygame.key.get_pressed()

if keys_pressed[K_RIGHT]:

用这个函数获取所有按键的状态列表不是处理用户输入文字的正确方法。你不知道键被按下的顺序。一个按键如果在两次 pygame.key.get_pressed调用之间被按下,那这次按键可能完全察觉不到。也没有办法把这些按键转换成对应的字符值。参看 pygame.KEYDOWN事件来正确实现这个功能。

基本上就这些了。

python绑定按键pageup键_python游戏教程一——键盘事件相关推荐

  1. python绑定按键pageup键_键盘事件keydown、keypress、keyup随笔整理总结(摘抄)

    原文1:http://www.cnblogs.com/silence516/archive/2013/01/25/2876611.html 原文2:http://www.cnblogs.com/leo ...

  2. python做按键精灵脚本_Python 实现按键精灵的功能,超简单详细(MAC版)

    前言: 想看Windows版的同窗能够看Python 实现按键精灵的功能,超简单详细(Windows版) 以前写了Windows版的python实现按键精灵功能.如今我鸟枪换炮换了个新的mac.发现以 ...

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

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

  4. python键盘事件_Python之pygame学习键盘事件操作(9)

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

  5. python字典按键值排序_Python字典『键 值』排序

    假设有一个字符串,然后想要查一下每个字母出现了多少次,可以通过字典来实现,实现方法? 用了get方法,来编写一下histogram这个函数,去掉那些if语句,更简洁一下: def histogram( ...

  6. python运行是哪个键_python – 如何使用回车键调用按钮命令

    在tkinter中,当按钮具有焦点时,您可以按空格键执行与该按钮关联的命令.我正在尝试按Enter键做同样的事情.我确定我过去做过这个,但我找不到代码,而我现在正在做的事情是行不通的.我在Mac上使用 ...

  7. python进阶路线知乎_Python学习教程(Python学习路线):第九天-面向对象进阶

    面向对象进阶 在前面的章节我们已经了解了面向对象的入门知识,知道了如何定义类,如何创建对象以及如何给对象发消息.为了能够更好的使用面向对象编程思想进行程序开发,我们还需要对Python中的面向对象编程 ...

  8. 用python写一个彩票过滤器_python入门教程NO.6 用python做个简单的彩票号码统计分析工具...

    python入门教程 python入门教程NO.6 用python做个简单的彩票号码统计分析工具 本文涉及的python基础语法是:字典.集合及for循环 字典的定义 字典也是一种可变的容器,它可以存 ...

  9. python输入城市找省份_Python入门教程(1)

    人生苦短,我用Python! Python(英语发音:/ˈpaɪθən/), 是一种面向对象.解释型计算机程序设计语言,由Guido van Rossum于2020年12月09日底发明,第一个公开发行 ...

最新文章

  1. Dubbo原理何源码解析之服务暴露
  2. 经过不断努力 终于获得“推荐博客”的荣誉
  3. shell常用的命令
  4. 多元线性回归的缺陷_轻松阅 | 多元线性回归的“参差不齐
  5. mxnet系列 安装
  6. Vue.js中,如何自己维护路由跳转记录?
  7. SpringBoot 整合 Security5
  8. 第二章 吸取jQuery之选择器和包装集
  9. eclipse修改xml文件默认的打开方式为XML Editor
  10. 项目进度管理之三点估算法
  11. HDMI接口 PCB布线指南-4层板为例
  12. 微信小程序--保存图片到相册功能实现
  13. 【漫画+图解】面试官让我用 2GB 内存给 20亿个整数(需要8GB内存)排序,我该咋整??
  14. java计算机毕业设计信用卡增值业务系统小程序用户端源码+mysql数据库+lw文档+系统+调试部署
  15. MGRE结合OSPF(超详解)
  16. errcode.php,errCode.php
  17. 全球与中国投影面料市场深度研究分析报告
  18. thunderbird 编辑html,通过thunderbird扩展以html格式阅读电子邮件
  19. idm 使用本地hosts 破解步骤
  20. Taurus.MVC 2.2 开源发布:WebAPI 功能增强(请求跨域及Json转换)

热门文章

  1. MantisBT设置局域网访问
  2. 局域网组网 实验7 MPLS VNP
  3. Gartner:2015年智慧城市将使用11亿个物联网终端
  4. MES管理系统的“五步走”策略,改善车间的管理模式
  5. 主流编程语言的 33 款开源爬虫
  6. python爬虫,东方财富股票历史资金流向表,并写入数据库
  7. 【Linux】第十一章 进程信号(概念+产生信号+阻塞信号+捕捉信号)
  8. openssl的介绍和使用
  9. Android桌面插件开发笔记
  10. 域渗透基础知识(五)之OU组织单位、ACL、SeEnableDelegationPrivilege特权