当前位置:   article > 正文

Pygame中监控键盘按键的方法_pygame获取键盘输入

pygame获取键盘输入

1 事件与队列

Pygame中,将用户对游戏的操作叫做“事件”。键盘按键是一种事件,鼠标点击和游戏手柄的输入也是一种事件。在Pygame的子模块locals中,对这些事件进行了定义。当用户通过键盘、鼠标或者游戏手柄对游戏进行操作后,产生的这些事件都会被放在队列中。

2 获取键盘按键的基本原理

在Pygame中获取按键的基本原理就是从队列中取出这些事件,如果是键盘事件,则继续判断用户按下的是哪个键,根据不同的按键进行不同的处理。

3 代码实现

3.1 模块导入

需要导入Pygame模块以及Pygame模块下的locals子模块,代码如下所示:

  1. import pygame
  2. from pygame.locals import *

3.2 从队列中取出事件

从队列中取出事件的代码如下所示:

  1. while True:
  2. for event in pygame.event.get():

其中,while True语句表示在游戏运行过程当中,能够不断地获取用户产生的事件;pygame.event.get()函数的作用是从队列中取出所有的事件,并将其保存到变量event中。

3.3 判断是否是键盘事件

在while循环中,对获取到的事件event进行判断,代码如下所示:

if event.type == KEYUP:

其中,event.type表示事件的类型,KEYUP在pygame.locals中定义,表示键盘中的某个键被按下。

3.4 根据不同的按键进行不同的处理

当判断出是键盘按键事件后,接下来判断用户按下的是键盘中的哪个按键,根据不同的按键进行不同的处理。我们要实现的功能是用户按下按键中的数字1键,则在屏幕上显示数字1;按下的是数字2键,则显示数字2,以此类推。代码如下所示:

  1. if  event.key == pygame.K_1:
  2.    number = '1'
  3. elif event.key == pygame.K_2:
  4.    number = '2'
  5. elif event.key == pygame.K_3:
  6.    number = '3'
  7. elif event.key == pygame.K_4:
  8. number = '4'

其中,event.key表示按键对应的值,pygame.K_1到pygame_K_4分别表示数字1键到数字4键对应的值。变量number是要显示的内容。

3.4 创建屏幕和要显示的内容

请参考《Pygame显示文字》

4 完整代码

在Pygame中获取键盘输入的完整代码如下所示:i

  1. import pygame
  2. from pygame.locals import *
  3. import sys
  4. pygame.init()
  5. screen = pygame.display.set_mode((600,500))
  6. font = pygame.font.Font(None, 100)
  7. number = '0'
  8. while True:
  9.     for event in pygame.event.get():
  10.         if event.type == QUIT:
  11.             sys.exit()
  12.         elif event.type == KEYUP:
  13.             if event.key == pygame.K_ESCAPE:
  14.                 sys.exit()
  15.             elif event.key == pygame.K_1:
  16.                 number = '1'
  17.             elif event.key == pygame.K_2:
  18.                 number = '2'
  19.             elif event.key == pygame.K_3:
  20.                 number = '3'
  21.             elif event.key == pygame.K_4:
  22.                 number = '4'
  23.             elif event.key == pygame.K_RETURN:
  24.                 number = 'RETURN'
  25.     screen.fill((0,0,200))
  26.     imgText = font.render(number, True, (255,255,255))
  27.     screen.blit(imgText, (300, 200))
  28. pygame.display.update()

运行该代码后,当按下1~4这四个数字键,在屏幕中就会显示相应的数字,如图1所示。

图1 显示按键对应的数字

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/189844
推荐阅读
相关标签
  

闽ICP备14008679号