• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    pygame实现键盘的连续监控

    pygame对键盘的连续监听,供大家参考,具体内容如下

    大家请看下面这一段代码:

    for event in pygame.event.get():
      if event.type == pygame.QUIT:
       exit()
      elif event.type == pygame.KEYDOWN:
       if event.key == pygame.K_RIGHT:
        print("右")
       if event.key == pygame.K_UP:
        print("上")
       if event.key == pygame.K_DOWN:
        print("下")
       if event.key == pygame.K_LEFT:
        print("左")

    大家首次监控键盘事件一般都会写出这样的代码我们着重来看一下对键盘上下左右键的监控。我们运行代码块我们会发现这几行代码和我们的想法是不一样的,我们在开发游戏的时候,我们大部分时候希望是可以连续控制,这样可以大大减少我们的手部疲劳,对玩家们也会非常的友好,但是我们现在的代码块,是敲一下键盘响应一次事件。所以我们要对代码进行改进,改进的方法有以下两种,大家可以根据自己的理解进行选择。

    方法一:设置中间变量

    moving_r = False
    moving_l = False
    moving_u = False
    moving_d = False
    while True:
     for event in pygame.event.get():
      if event.type == pygame.QUIT:
       exit()
      elif event.type == pygame.KEYDOWN:
       if event.key == pygame.K_RIGHT:
        moving_r = True
       if event.key == pygame.K_UP:
        moving_u = True
       if event.key == pygame.K_DOWN:
        moving_d = True
       if event.key == pygame.K_LEFT:
        moving_l = True
      elif event.type == pygame.KEYUP:
       if event.key == pygame.K_RIGHT:
        moving_r = False
       if event.key == pygame.K_UP:
        moving_u = False
       if event.key == pygame.K_DOWN:
        moving_d = False
       if event.key == pygame.K_LEFT:
        moving_l = False
     if moving_r:
      print("右")
     elif moving_u:
      print("上")
     elif moving_d:
      print("下")
     elif moving_l:
      print("左")

    引入四个moving变量将四个变量的初值均设为Flase,用pygame的KEYDOWN和KEYUP方法来改变四个变量的值,以此来实现对键盘的连续监控,这种方法虽然很好理解,但是如果是小白对代码的重构不是很熟悉会显得非常缀余。

    方法二:运用pygame中get_pressed()

    # 键盘的连续监听
     Key_pressed = pygame.key.get_pressed()
     if Key_pressed[K_UP]:
      print("上")
     if Key_pressed[K_DOWN]:
      print("下")
     if Key_pressed[K_LEFT]:
      print("左")
     if Key_pressed[K_RIGHT]:
      print("右")

    这样也是能连续监听键盘事件,但是这里需要注意一下if半段语句后面是中括号并非是小括号,第二个要注意的地方便是键盘名称,如果直接输入K_UP等是会报错的,有两种解决办法一种是导入pygame的方法:

    from pygame import *

    这样就不会报错了,另一种是在K_UP 前面加上pygame如:

    if Key_pressed[pygame.K_UP]:
      print("上")

    这样也是可行的。

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    您可能感兴趣的文章:
    • pygame可视化幸运大转盘实现
    • pygame多种方式实现屏保操作(自动切换、鼠标切换、键盘切换)
    • 利用pygame完成动画精灵和碰撞检测
    • 详解pygame捕获键盘事件的两种方式
    • python使用pygame创建精灵Sprite
    • pygame面向对象的飞行小鸟实现(Flappy bird)
    • pygame实现键盘和鼠标事件的处理
    • Pygame做一期吃豆子游戏的示例代码
    • Python Pygame实现俄罗斯方块
    • 五分钟学会怎么用Pygame做一个简单的贪吃蛇
    • Python使用Pygame绘制时钟
    • pygame实现井字棋之第一步绘制九宫格
    上一篇:python中asyncio异步编程学习
    下一篇:Pandas提取单元格的值操作
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    pygame实现键盘的连续监控 pygame,实现,键盘,的,连续,