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

相关推荐
kszlgy5 小时前
Day 52 神经网络调参指南
python
wrj的博客6 小时前
python环境安装
python·学习·环境配置
Pyeako7 小时前
深度学习--BP神经网络&梯度下降&损失函数
人工智能·python·深度学习·bp神经网络·损失函数·梯度下降·正则化惩罚
摘星编程8 小时前
OpenHarmony环境下React Native:Geolocation地理围栏
python
充值修改昵称8 小时前
数据结构基础:从二叉树到多叉树数据结构进阶
数据结构·python·算法
q_354888515310 小时前
AI大模型:python新能源汽车推荐系统 协同过滤推荐算法 Echarts可视化 Django框架 大数据毕业设计(源码+文档)✅
大数据·人工智能·python·机器学习·信息可视化·汽车·推荐算法
Yeats_Liao10 小时前
开源生态资源:昇腾社区ModelZoo与DeepSeek的最佳实践路径
python·深度学习·神经网络·架构·开源
被星1砸昏头10 小时前
掌握Python魔法方法(Magic Methods)
jvm·数据库·python
love530love11 小时前
彻底解决 ComfyUI Mixlab 插件 Whisper.available False 的报错
人工智能·windows·python·whisper·win_comfyui
不解风水11 小时前
《深度学习入门:基于 Python 的理论与实现》(斋藤康毅)
人工智能·python·深度学习