Pygame教程07:键盘常量+键盘事件的2种捕捉方式

------------★Pygame系列教程★------------

Pygame教程01:初识pygame游戏模块

Pygame教程02:图片的加载+缩放+旋转+显示操作

Pygame教程03:文本显示+字体加载+transform方法

Pygame教程04:draw方法绘制矩形、多边形、圆、椭圆、弧线、直线和线条等

Pygame教程05:帧动画原理+边界值检测,让小球来回上下运动

Pygame教程06:Event事件的类型+处理方法+监听鼠标事件

Pygame教程07:键盘常量+键盘事件的2种捕捉方式

Pygame教程08:使用键盘方向键,控制小球,上下左右移动。

键盘事件会涉及到大量的按键操作,比如游戏中的上下左右,或者人物的前进、后退等操作,这些都需要键盘来配合实现。键盘事件提供了一个 key 属性,通过该属性可以获取键盘的按键。Pygame将键盘上的字母键、数字键、组合键等按键以常量的方式进行了定义。

1.常用的按键常量:

2.键盘事件的2种捕获方式

2.1pygame.event.get() 方法:这个方法返回一个包含所有待处理事件的列表。你可以遍历这个列表,检查每个事件的类型,并处理键盘事件。当使用这种方法时,通常需要检查 event.type 是否等于 pygame.KEYDOWN,这表示有键被按下。然后,你可以使用 event.key 来获取被按下的键的标识符。

python 复制代码
for event in pygame.event.get(): 
    if event.type == pygame.KEYDOWN:  
        if event.key == pygame.K_LEFT:  
            # 处理左键按下事件  
            print("Left key pressed")

2.2.pygame.key.get_pressed() 方法:这个方法返回一个元组,表示当前所有键盘按键的状态(按下或未按下)。你可以通过检查元组中的特定键位来确定哪个键被按下。这种方法对于需要持续监听按键状态的情况很有用,比如实现角色的持续移动。

python 复制代码
keys_pressed = pygame.key.get_pressed()  
if keys_pressed[pygame.K_RIGHT]:  
    # 如果右键被按下  
    print("Right key is pressed")

3.键盘事件的示例用法:创建了一个游戏窗口,并在窗口中监听了键盘事件,会在窗口显示你所按的键。当按下特定的键(如左键或右键)时,程序会输出相应的信息到控制台。你可以根据需要修改if event.key ==后面的条件,来检测其他键盘事件。

注意一个小细节:当按字母的时候,输入法要切换成英文状态,不然无法显示所按的字母键。使用shift键即可实现中英的来回切换。

python 复制代码
# @Author : 小红牛
# 微信公众号:WdPython
import sys
import pygame

# 初始化pygame
pygame.init()

# 设置窗口大小
screen = pygame.display.set_mode((700, 180))
# 设置窗口标题
pygame.display.set_caption('Pygame Keyboard Event Example')
# 设置楷体字体
font = pygame.font.SysFont('kaiti', 50, bold=False, italic=False)

# 游戏主循环
while True:
    # 处理事件队列
    for event in pygame.event.get():
        if event.type == pygame.QUIT:  # 如果收到退出事件,则退出循环
            # 关闭游戏
            pygame.quit()
            sys.exit()

        elif event.type == pygame.KEYDOWN:  # 如果收到键盘按下事件
            # 清空屏幕
            screen.fill((0, 0, 0))
            # 1.窗口显示所按的键
            key_name = pygame.key.name(event.key)
            # 渲染文本
            text_surface = font.render(f'当前按下的是:{key_name}键', True, (255, 255, 255))
            screen.blit(text_surface, (30, 50))
            # 2.更新显示
            pygame.display.update()

            # 3.特殊的键被按下,就会被监听,如下面的上下左右方向键
            if event.key == pygame.K_LEFT:
                print('方向左键,被按下')
            elif event.key == pygame.K_RIGHT:
                print('方向右键,被按下')
            elif event.key == pygame.K_UP:
                print('方向上键,被按下')
            elif event.key == pygame.K_DOWN:
                print('方向下键,被按下')

完毕!!感谢您的收看

----------★★历史博文集合★★----------

我的零基础Python教程,Python入门篇 进阶篇 视频教程 Py安装py项目 Python模块 Python爬虫 Json Xpath 正则表达式 Selenium Etree CssGui程序开发 Tkinter Pyqt5 列表元组字典数据可视化 matplotlib 词云图 Pyecharts 海龟画图 Pandas Bug处理 电脑小知识office自动化办公 编程工具 NumPy Pygame

相关推荐
该用户已不存在4 小时前
Mojo vs Python vs Rust: 2025年搞AI,该学哪个?
后端·python·rust
站大爷IP6 小时前
Java调用Python的5种实用方案:从简单到进阶的全场景解析
python
用户83562907805112 小时前
从手动编辑到代码生成:Python 助你高效创建 Word 文档
后端·python
c8i12 小时前
python中类的基本结构、特殊属性于MRO理解
python
liwulin050612 小时前
【ESP32-CAM】HELLO WORLD
python
Doris_202313 小时前
Python条件判断语句 if、elif 、else
前端·后端·python
Doris_202313 小时前
Python 模式匹配match case
前端·后端·python
这里有鱼汤13 小时前
Python量化实盘踩坑指南:分钟K线没处理好,小心直接亏钱!
后端·python·程序员
大模型真好玩14 小时前
深入浅出LangGraph AI Agent智能体开发教程(五)—LangGraph 数据分析助手智能体项目实战
人工智能·python·mcp
测试老哥14 小时前
Selenium 使用指南
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例