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

2023-10-27

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

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

eventList = pygame.event.get()
# 2.对事件进行判断处理(1. 点击关闭按钮  2.按下键盘上的某个键)
for event in eventList:
    # 判断event.type  是否QUIT
    if event.type == pygame.QUIT:
        print("点击了×")
    # 判断事件类型是否为按键按下,如果是:继续判断按键是哪一个按键来进行对应的处理
    if event.type == pygame.KEYDOWN:
        # 具体是哪一个按键的处理
        if event.key == pygame.K_LEFT:
            print("按下左键")

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

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

总结:
两种方式的比较:
方式1按下一次必须弹起按键再点击一次才有操作,方式2可以按住这个键则会重复操作
方式1的灵活性没有方式2的好,如果对灵活性要求高的游戏,一般建议使用方式2。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pygame捕获键盘事件的两种方式 的相关文章

随机推荐

  • STM32 进阶教程 1 - micropython 移植

    原文 https blog csdn net zhanglifu3601881 article details 91997528 前言 Python是一种解释型 面向对象 动态数据类型的高级程序设计语言 Python 是一个高层次的结合了解
  • 11.AOP之注解配置

    1 使用IDEA创建工程 2 引入项目使用的依赖
  • Spring静态注入

    原文链接 http blog csdn net chen1403876161 article details 53644024 spring静态注入的三种方式 说明 MongoFileOperationUtil是自己封装的一个Mongodb
  • [Synth 8-2543] port connections cannot be mixed ordered and named

    我也遇到了这个问题 卡了半天 刚自己解决了 给再发生这种状况的盆友们一点参考 Jakes uut clk clk we we T T cos1 cos1 sin1 sin1 cos2 cos2 sin2 sin2 cos3 cos3 sin
  • MII/MDIO接口详解

    本文主要分析MII RMII SMII 以及GMII RGMII SGMII接口的信号定义 及相关知识 同时本文也对RJ 45接口进行了总结 分析了在10 100模式下和1000M模式下的设计方法 MII接口提供了MAC与PHY之间 PHY
  • 纵表和横表的相互转换与自我理解

    纵表和横表的相互转换与自我理解 横表 纵表 结论 纵表转横表 横表转纵表 横表 优点 一行表示了一个实体记录 清晰可见 一目了然 缺点 如果现在要给这个表加一个字段 那么就必须重建表结构 纵表 优点 如果现在要给这个表加一个字段 只需要添加
  • 105套最新计算机专业毕业设计源码+数据库+论文

    最近又到了毕设期 很多计算机的同学都在忙着做毕设 可毕设总是遥遥无期 我身边的朋友也在忙自己的毕业设计程序 目前也是难产一样慢慢挤出来 很能感受到大家的痛苦 但是本科毕设程序还是挺简单的 市面上有大量几千套 上万套的参考 面对这么多资源 你
  • Eclipse工具启动提示the selection cannot be launched,and there are no recent

    误删了eclipse之后 发现了 jdk 64bit与eclipse 32bit位数不匹配 jdk配置环境不变 重新安装eclipse 方便 将eclipse zip解压到D Eclipse下 直接点击eclipse exe即可 安装过程可
  • 删除数组中的某个指定元素或数组对象<学习笔记>

    1 删除数组中的某个指定元素 let index this fileList indexOf filename if index gt 1 this fileList splice index 1 其中fileList为我的数组 我要找到f
  • Debian 10.x 网卡配置那些事儿

    Linux系统要上网 必然要学会对网卡进行配置 对于Redhat系 在 etc sysconfig network scripts 目录下的一大堆文件 要修改 你得一个一个文件来过 对于Debian系 不管你有多少张网卡 有线网卡还是无线网
  • CentOS7.2下SSL证书的配置

    HTTPS的配置 2017 07 28 准备 假设CentOS7 已经安装了Apache Web服务器 yum install mod ssl openssl 安装完毕后 会自动生成 etc httpd conf d ssl conf 文件
  • CSS Tricks各种动画效果

    CSS Tricks各种动画效果
  • MySQL的体系结构

    MySQL是由SQL接口 解析器 优化器 缓存 存储引擎组成的 MySQL体系结构可以分为四个层级 如图1所示 一 连接层 思想 为解决资源的频繁分配 释放所造成的的问题 为数据库连接建立一个 缓冲池 原理 预先在缓冲池中放入一定数量的连接
  • IP地址定位原理

    IP地址定位是一种通过IP地址来确定位置的技术 在互联网和移动网络的应用十分广泛 本文将介绍IP地址定位的原理和实现方式 IP地址定位原理 IP地址是Internet Protocol 简称IP 的缩写 是互联网上的一个地址标识符用于识别连
  • 面板phpMyAdmin不同版本和MySQL还有php版本的对应情况

    phpMyAdmin4 9 0 Current version compatible with PHP 5 5 to 7 3 and MySQL 5 5 and newer phpMyAdmin4 8 0 Older version com
  • matlab绘图legend遮挡曲线,matlab绘图中legend的终极用法

    持续更新 当前 20100108 仅作笔记 作者 keyflying legend有时候挺烦人的 尽管大多时候挺好用 基本数据 data rand 25 repmat 1 25 25 1 H plot data 基本用法 legend st
  • 手动编辑一个快捷卸载的bat文件

    1 首先建立一个空的XXX bat文件 2 编辑内容输入 echo off goto run run start control appwiz cpl 3 保存 实现效果打开后直接跳转卸载界面 方便快速操作卸载文件
  • Java学习笔记 面向对象(下)

    第六章 面向对象 下 1 this与super 2 构造方法的多态 3 抽象类 4 接口 interface 5 引用 6 类的其他相关内容 1 this与super this this 域变量和this 成员方法 明确表示用的是类的域变量
  • iOS进阶_密码学(四.抽取登录网络请求的单例)

    登录业务逻辑完善 在网络开发中 一般会有一个单例负责所有的网络请求 将这个网络登录的部分代码抽取出来 新建一个 类 复制方法 调整参数 测试登录能否成功运行 WTNetworkTools h import
  • pygame捕获键盘事件的两种方式

    pygame捕获键盘事件的两种方式 方式1 在pygame中使用pygame event get 方法捕获键盘事件 使用这个方式捕获的键盘事件必须要是按下再弹起才算一次 示例示例 eventList pygame event get 2 对