首页 > python教程

详解pygame捕获键盘事件的两种方式

时间:2021-05-14 python教程 查看: 1924

方式1:在pygame中使用pygame.event.get()方法捕获键盘事件,使用这个方式捕获的键盘事件必须要是按下再弹起才算一次。
示例示例:

for event in pygame.event.get(): # 捕获键盘事件
  if event.type == pygame.QUIT: # 判断按键类型
    print("按下了退出按键")

方式2:在pygame中可以使用pygame.key.get_pressed()来返回所有按键元组,通过判断键盘常量,可以在元组中判断出那个键被按下,如果被按下则元组中就会存在这个按键信息。通过这样的方式也可以捕获到键盘的事件,并且不需要按下再弹起的操作,一按下就会有响应,灵活性比较高。

示例代码:

mykeyslist = pygame.key.get_pressed() # 获取按键元组信息
if mykeyslist[pygame.K_RIGHT]: # 如果按键按下,这个值为1
  print("按下了方向右键")

总结:
两种方式的比较:方式1的灵活性没有方式2的好,如果对灵活性要求高的游戏,一般建议使用方式2。

pygame按键持续按下响应

在写一个pygame 的一个小的飞机大战程序但是碰到一个小问题,仅此记录

通过键盘事件操控飞机的左右移动:

elif event.type == KEYDOWN:

    # 检测按键是否是a或者left
     if event.key == K_a or event.key == K_LEFT:
       plane_temp.move_left()

虽然能实现移动,但是每一次的移动都需要按一下按钮,使我感觉很难受

想实现可以持续按下,并且可以相应的效果

查资料发现

pygame.key.set_repeat() control how held keys are repeated
set_repeat() -> None set_repeat(delay, interval) -> None When the
keyboard repeat is enabled, keys that are held down will generate
multiple pygame.KEYDOWN events. The delay is the number of
milliseconds before the first repeated pygame.KEYDOWN will be sent.
After that another pygame.KEYDOWN will be sent every interval
milliseconds. If no arguments are passed the key repeat is disabled.

When pygame is initialized the key repeat is disabled.

按键是默认只能按下一次,于是就取了一个巧,查看哪些按键是已进按下的,后通过循环实现对应操作

key_pressed = pygame.key.get_pressed()
  if key_pressed[pygame.K_a] or key_pressed[pygame.K_LEFT]
    plane_temp.move_left()

pygame的对应帮助文档:
https://www.pygame.org/docs/ref/key.html#comment_pygame_key_set_repeat

到此这篇关于详解pygame捕获键盘事件的两种方式的文章就介绍到这了,更多相关pygame捕获键盘内容请搜索python博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持python博客!

展开全文
上一篇:python怎样更加简洁的解决小明种苹果
下一篇:PyQT5实现选项卡窗口、堆栈窗口、停靠窗口、子窗口
输入字:
相关知识
Python 实现图片色彩转换案例

我们在看动漫、影视作品中,当人物在回忆过程中,体现出来的画面一般都是黑白或者褐色的。本文将提供将图片色彩转为黑白或者褐色风格的案例详解,感兴趣的小伙伴可以了解一下。

python初学定义函数

这篇文章主要为大家介绍了python的定义函数,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助,希望能够给你带来帮助

图文详解Python如何导入自己编写的py文件

有时候自己写了一个py文件,想要把它导入到另一个py文件里面,所以下面这篇文章主要给大家介绍了关于Python如何导入自己编写的py文件的相关资料,需要的朋友可以参考下

python二分法查找实例代码

二分算法是一种效率比较高的查找算法,其输入的是一个有序的元素列表,如果查找元素包含在列表中,二分查找返回其位置,否则返回NONE,下面这篇文章主要给大家介绍了关于python二分法查找的相关资料,需要的朋友可以参考下