python绑定按键pageup键_python游戏教程一——键盘事件
无论什么游戏,少不了输入设备,键盘鼠标可能应用的是最多的,当然除了他们还有游戏手柄或者其他。今天我们就一起来学习一下经常用到的鼠标和键盘事件。
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游戏教程一——键盘事件相关推荐
- python绑定按键pageup键_键盘事件keydown、keypress、keyup随笔整理总结(摘抄)
原文1:http://www.cnblogs.com/silence516/archive/2013/01/25/2876611.html 原文2:http://www.cnblogs.com/leo ...
- python做按键精灵脚本_Python 实现按键精灵的功能,超简单详细(MAC版)
前言: 想看Windows版的同窗能够看Python 实现按键精灵的功能,超简单详细(Windows版) 以前写了Windows版的python实现按键精灵功能.如今我鸟枪换炮换了个新的mac.发现以 ...
- python pygame模块按键延迟_Python之pygame学习键盘事件操作(9)
pygame键盘事件操作 ✕ 什么是事件呢?按下键盘某个按键,鼠标移动,包括点击关闭按钮都可以算是事件操作. pygame中事件模块是pygame.event,官方说法是用于与事件和队列进行交互. 不 ...
- python键盘事件_Python之pygame学习键盘事件操作(9)
pygame键盘事件操作 ✕ 什么是事件呢?按下键盘某个按键,鼠标移动,包括点击关闭按钮都可以算是事件操作. pygame中事件模块是pygame.event,官方说法是用于与事件和队列进行交互. 不 ...
- python字典按键值排序_Python字典『键 值』排序
假设有一个字符串,然后想要查一下每个字母出现了多少次,可以通过字典来实现,实现方法? 用了get方法,来编写一下histogram这个函数,去掉那些if语句,更简洁一下: def histogram( ...
- python运行是哪个键_python – 如何使用回车键调用按钮命令
在tkinter中,当按钮具有焦点时,您可以按空格键执行与该按钮关联的命令.我正在尝试按Enter键做同样的事情.我确定我过去做过这个,但我找不到代码,而我现在正在做的事情是行不通的.我在Mac上使用 ...
- python进阶路线知乎_Python学习教程(Python学习路线):第九天-面向对象进阶
面向对象进阶 在前面的章节我们已经了解了面向对象的入门知识,知道了如何定义类,如何创建对象以及如何给对象发消息.为了能够更好的使用面向对象编程思想进行程序开发,我们还需要对Python中的面向对象编程 ...
- 用python写一个彩票过滤器_python入门教程NO.6 用python做个简单的彩票号码统计分析工具...
python入门教程 python入门教程NO.6 用python做个简单的彩票号码统计分析工具 本文涉及的python基础语法是:字典.集合及for循环 字典的定义 字典也是一种可变的容器,它可以存 ...
- python输入城市找省份_Python入门教程(1)
人生苦短,我用Python! Python(英语发音:/ˈpaɪθən/), 是一种面向对象.解释型计算机程序设计语言,由Guido van Rossum于2020年12月09日底发明,第一个公开发行 ...
最新文章
- Dubbo原理何源码解析之服务暴露
- 经过不断努力 终于获得“推荐博客”的荣誉
- shell常用的命令
- 多元线性回归的缺陷_轻松阅 | 多元线性回归的“参差不齐
- mxnet系列 安装
- Vue.js中,如何自己维护路由跳转记录?
- SpringBoot 整合 Security5
- 第二章 吸取jQuery之选择器和包装集
- eclipse修改xml文件默认的打开方式为XML Editor
- 项目进度管理之三点估算法
- HDMI接口 PCB布线指南-4层板为例
- 微信小程序--保存图片到相册功能实现
- 【漫画+图解】面试官让我用 2GB 内存给 20亿个整数(需要8GB内存)排序,我该咋整??
- java计算机毕业设计信用卡增值业务系统小程序用户端源码+mysql数据库+lw文档+系统+调试部署
- MGRE结合OSPF(超详解)
- errcode.php,errCode.php
- 全球与中国投影面料市场深度研究分析报告
- thunderbird 编辑html,通过thunderbird扩展以html格式阅读电子邮件
- idm 使用本地hosts 破解步骤
- Taurus.MVC 2.2 开源发布:WebAPI 功能增强(请求跨域及Json转换)