Python学习笔记37:进阶篇(二十六)pygame的使用之输入处理

Python游戏开发:Pygame游戏控制指南:键盘输入、鼠标输入与游戏循环详解 Pygame游戏控制详解Pygame是一个开源的Python游戏开发库,它提供了许多用于创建游戏的功能和工具。在Pygame中,游戏控制是实现玩家与游戏互动的重要部分。本文档将详细介绍Pygame游戏控制的各个方面,包括键盘输入、鼠标输入、游戏循环等。键盘输入是玩家与游戏互动的主要方式之一。Pygame提供了方便的键盘输入处理函数,使得处理键盘输入变得简单而高效。在上面的代码中,我们使用函数来获取事件队列,然后对每个事件进行处理。如果事件类型是,则退出游戏循环;如果事件类型是,则处理键盘按下事件。 阅读详情

前言

基础模块的知识通过这么长时间的学习已经有所了解,更加深入的话需要通过完成各种项目,在这个过程中逐渐学习,成长。

我们的下一步目标是完成python crash course中的外星人入侵项目,这是一个2D游戏项目。在这之前,我们先简单学习一下pygame模块。

私信我发送消息python资料,领取python crash course中文版PDF。

pygame

Pygame是一个开源的Python多媒体开发库,专门用于开发2D游戏。它是Python编程语言的一个扩展,基于 SDL (Simple DirectMedia Layer) 库,提供了丰富的功能来处理图形、声音、事件处理等游戏开发所需的基本要素,使得创建游戏变得更加简单直接。

输入处理

pygame的输入处理主要涉及监听和响应用户的键盘、鼠标和手柄操作。Pygame通过事件队列机制来管理这些输入,使得游戏能够及时响应用户的行为。

由于我没有手柄,这里只记录键盘和鼠标的输入处理。

pygame.key

pygame.key是pygame中的一个模块,主要用于处理键盘输入。

  1. pygame.key.get_pressed()

    • 功能介绍
      pygame.key.get_pressed() 函数返回一个列表,表示键盘上所有按键的状态。列表中每个元素对应一个按键,如果按键被按下,则对应的元素值为 True;如果没有被按下,则为 False。
    • 请求参数
      此函数无参数。
    • 返回结果
      返回一个列表,长度固定,每个元素是一个布尔值,表示对应按键的状态。
  2. pygame.key.set_repeat(delay, interval)

    • 功能介绍
      pygame.key.set_repeat() 函数用于设置按键重复发送 KEYDOWN 事件的延迟和间隔时间。当一个按键被持续按下时,这个函数会控制何时开始以及以多快的速度重复发送 KEYDOWN 事件。
    • 请求参数
      • delay: 整数,表示第一次重复事件前的延迟时间(毫秒)。
      • interval: 整数,表示之后每次重复事件之间的间隔时间(毫秒)。
    • 返回结果
      此函数没有返回值。
  3. pygame.key.get_mods()

    • 功能介绍
      pygame.key.get_mods() 函数返回一个整数,表示当前按下的修饰键(如Shift、Ctrl、Alt)的状态。不同的修饰键状态会以位运算的方式组合在一起。
    • 请求参数
      此函数无参数。
    • 返回结果
      返回一个整数,表示当前按下的修饰键的组合状态。
  4. pygame.key.name(key)

    • 功能介绍
      pygame.key.name() 函数返回一个字符串,表示指定按键的名称。
    • 请求参数
      • key: 整数,表示按键的ID。
    • 返回结果
      返回一个字符串,表示按键的名称。

代码示例

import pygame

# 初始化
pygame.init()

# 没啥用的窗口,单纯为了关闭窗口退出程序
screen = pygame.display.set_mode((1200, 800))

# 设置按键重复延迟为300毫秒,间隔为50毫秒
pygame.key.set_repeat(300, 50)

秒会Pygame:键盘移动和鼠标点击移动物体的方法(含完整的代码) 小白秒会Pygame:键盘移动和鼠标点击移动物体的方法(含完整的代码),预备知识 pygame的基本函数介绍,键盘控制物体移动事件,在屏幕上初始化一个外星人,用上、下、左、右键控制外星人移动;鼠标点击控制物体移动事件,在屏幕上初始化一个外星人,点击鼠标使外星人移动到鼠标点击的地方;鼠标移动的同时画彩色小球,随着鼠标的移动,每移动以下,在移动后的位置画出颜色随机的小球 阅读详情

相关推荐

[Pygame&tkinter]真·中文输入框

文章目录前言1.创建窗口2.输入框3.构建Entry栗子写在最后 前言 之前看到过一篇不错的文章,点个赞。 关于输入框,pygame还是比较坑的,没有内置,遂产生想法:tk和pg结合 1.创建窗口 tk嵌入pg请参考这,支持三个平台,不用user32.dll之支持win32 import tkinter as tk import pygame as pg import os root = tk.Tk() os.environ["SDL_WINDOWID"] = str(root.winfo_id()) sc

代码见:github/THZrry/demos_in_csdn 3455

Pygame输入框

Pygame输入框

2301_77951613的博客 408

Pygame详解:键盘模块

其中的键盘模块提供了与键盘交互的功能。本文将详细介绍Pygame键盘模块的使用方法,并提供相应的源代码示例。你可以根据自己的需求和创意,结合其他Pygame模块和功能,开发出丰富多样的键盘交互效果。然后,我们根据不同的按键状态执行相应的操作。在示例代码中,如果按下方向键,我们将打印相应的移动消息。接下来,我们初始化Pygame库并创建一个窗口,设置窗口的标题为"Keyboard Input"。在示例代码中,我们检查了按下的键是否为Esc键(通过运行上述代码,你可以在控制台中看到按下的键的消息。

UwoiGit的博客 478

使用Pygame学习键盘事件操作

在本篇文章中,我们将学习如何使用Pygame处理键盘事件,并提供相应的源代码示例。通过学习本文提供的示例代码,你现在应该有了一些基本的了解,如何使用Pygame处理键盘事件。你可以根据自己的需求扩展代码,检测和处理其他按键事件,并执行相应的操作。如果按下了左箭头键,我们可以在对应的条件中执行左移操作。类似地,如果按下了右箭头键,我们可以在对应的条件中执行右移操作。然后,我们遍历这些事件,并根据事件类型进行相应的处理。在这个示例中,我们检查了ESC键是否被按下,如果是,我们将设置。在上面的示例中,我们通过。

TdMaster的博客 370

Pygame事件处理详解:键盘、鼠标与自定义事件

Pygame事件处理详解:键盘、鼠标与自定义事件

AIGC 2930

得利捷datalogic扫码枪调试说明

针对得利捷datalogic扫码枪快速调试并,可以根据详细步骤设置扫码枪,并配有tcp调试助手辅以验证,以达到快速调试完成扫码枪的工作。

Conway510的博客 1万+

Windows 必看!OpenClaw 一键安装教程|告别报错,一次成功不踩坑

OpenClaw 完整安装与配置的全流程教程

m0_70389289的博客 1085

AI 辅助代码审查:开启代码质量管控的智能时代

AI辅助代码审查正在改变传统的代码质量管控方式。通过自动化分析、智能反馈和上下文感知,AI不仅提高了代码审查的效率,还提升了代码质量的一致性和可维护性。随着机器学习和深度学习技术的不断发展,未来AI将成为开发者日常工作中强大的助手,进一步推动软件开发向智能化、自动化方向发展。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 3229

保姆级教程:用rosbag录制和回放你的第一个ROS机器人数据(附C++/Python代码)

本文提供了一份详细的ROS机器人数据录制与回放教程,涵盖从命令行操作到C++/Python编程实现的全流程。通过rosbag工具,开发者可以高效记录和回放机器人运行时的传感器数据和控制指令,适用于故障复现、算法调试等多种场景。教程还包含高级技巧如时间同步和大文件处理,帮助用户快速掌握ROS数据管理核心技能。

weixin_29313239的博客 285

把时间当成数据:SAP ABAP 里的 DATS/TIMS 与 DATN/TIMN,怎么选才不踩坑

SAP项目中日期时间字段的陷阱与优化 日期时间字段(DATS/TIMS)在SAP项目中看似简单却常引发事故,主要问题包括: 非法日期(如20201331)入库后,在月结、对账时爆发异常 空值被处理为00000000导致排序错误 ABAP提供两种处理方案: 经典类型DATS/TIMS:存储为字符格式,校验宽松易存脏数据 HANA原生类型DATN/TIMN:数据库级校验,写入即拦截非法值 优化建议: 在接口层和入库前进行严格校验 新项目优先使用DATN/TIMN类型 对遗留数据使用DATS_IS_VALID等函

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 184

王炸联动!OpenClaw 对接微信 / 企业微信保姆级教程,AI 办公效率翻倍

《OpenClaw对接微信/企业微信全指南》摘要:本文提供开源AI智能体OpenClaw与微信生态的完整对接教程。核心内容包括企业微信配置四步法(获取凭证、修改配置、重启服务、验证对接)和个人微信通过企业微信插件的一键打通方案。对接后支持微信/企微发指令AI秒执行、群聊机器人、文件同步等高效办公场景,并附常见问题排查代码。教程强调配置简单(全程可复制代码)、适用广泛(个人/团队场景),实现沟通与AI协作的无缝衔接。文末包含端口放行等实用命令,助力用户快速实现移动端AI办公。(149字)

2501_93651177的博客 584

C++怎么学?零基础也可以,一份完整学习路线图助你搞定!

提供一条清晰、系统且实践导向的C++学习路径。从基础语法、面向对象、泛型编程、异常处理,逐步深入STL、智能指针、并发编程等现代C++高级特性。无论是新手还是希望提升,通过系统学习与项目实践,助您将理论知识转化为实际解决问题的能力。

Lion_Long的博客 4027

tsmc12:via0的spacing问题(Via0.S.1)

12nm有个via0 grid的概念,除了普通fill外,基本都有via0这一层,这一层需要与via0 grid对齐。手动调整cell的位置比较容易出这个drc,比如修m0po max length drc时。解决方法1: 替换EEQV类型cell,这种类型是专门为了修via0 Grid问题存在的。更多学习内容请关注「拾陆楼」知识星球。解决方法2: 翻转或移动。

m0_61544122的博客 1116

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

上一篇: Python学习笔记36:进阶篇(二十五)pygame的使用之事件监听控制切歌和暂停,继续播放
下一篇: Python学习笔记38:进阶篇(二十七)pygame的使用之时间与帧数控制
明月望秋思
博客等级 码龄6年 1931粉丝 102原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值