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

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

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

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

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

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

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

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

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

Pygame教程08:使用键盘方向键,控制小球,上下左右移动。
1.Pygame常用的事件类型有哪些:

QUIT:当用户关闭窗口时触发此事件。通常,你会在游戏的主循环中检测这个事件,并据此退出游戏。
ACTIVEEVENT:当pygame获得或失去焦点时触发此事件。这对于需要在不同应用之间切换时暂停或恢复游戏的程序来说很有用。
KEYDOWN 和 KEYUP:当用户按下或释放键盘上的键时触发这些事件。你可以通过event.key属性来获取被按下或释放的键的常量名称。
MOUSEMOTION:当鼠标移动时触发此事件。你可以通过event.pos获取鼠标的当前位置,以及通过event.rel获取鼠标相对于上一次事件的相对移动距离。
MOUSEBUTTONDOWN 和 MOUSEBUTTONUP:当用户按下或弹起鼠标按钮时触发这些事件。你可以通过event.pos获取鼠标的当前位置,以及通过event.button获取被按下或释放的鼠标按钮的编号(1为左键,2为中键,3为右键)。
此外,还有其他一些事件类型,如JOYAXISMOTION、JOYBALLMOTION、JOYHATMOTION等,这些主要与游戏手柄输入相关。
这些事件类型都是由pygame.event.EventType枚举类定义的。你可以使用pygame.event.get()函数来获取事件队列中的所有事件,并在游戏的主循环中逐一处理它们。为了确保不丢失任何重要事件,尤其是退出命令信号(pygame.QUIT),你的程序应该在每一帧都处理事件,并将已处理的事件从事件队列中移除。
2.Pygame.event处理事件的方法
在这里插入图片描述
3.鼠标事件的示例用法:当鼠标移动、按下或释放按钮时,程序会输出相应的信息到控制台,或执行相应的事件代码。下面代码中鼠标按下就会一个黄色的圆,鼠标移动的时候,在移动的位置随机颜色的圆。
在这里插入图片描述

# @Author : 小红牛
# 微信公众号:WdPython
import sys
from random import randint
import pygame# 初始化 Pygame
pygame.init()# 1.设置窗口大小
screen = pygame.display.set_mode((800, 600))
pygame.display.set_caption('鼠标事件的用法')
# 游戏主循环
while True:# 处理事件for event in pygame.event.get():if event.type == pygame.QUIT:# 关闭游戏pygame.quit()sys.exit()elif event.type == pygame.MOUSEBUTTONDOWN:print('1.鼠标按下的坐标和类型:', event.pos, event.button)# 获取鼠标当前位置x1, y1 = event.pos# 在鼠标按下的位置画圆pygame.draw.circle(screen, (255, 255, 0), (x1, y1), 50)# 处理完一定更新,不然无法显示pygame.display.update()elif event.type == pygame.MOUSEBUTTONUP:print('2.鼠标弹起')elif event.type == pygame.MOUSEMOTION:print('3.鼠标移动的坐标和相对移动距离:', event.pos, event.rel)x2, y2 = event.pos# 随机生成 RGB 颜色值r = randint(0, 255)g = randint(0, 255)b = randint(0, 255)pygame.draw.circle(screen, (r, g, b,), (x2, y2), 50)# 更新显示pygame.display.update()

完毕!!感谢您的收看

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/535046.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jenkins + gitea 自动化部署Docker项目(vue + .NET Core)

废话不多说,服务先安装好Jenkins 和 gitea 理论上 gitlab 一样的实现流程 Jenkins 配置: 第一步装插件 安装 Generic Event 安装 gitea 相关插件 创建一个任务 设置 git 根据自己git 的认证填写对应的认证方式 构建环境记得勾选这个,会清…

操作系统:进程控制(上)

目录 1.进程创建 1.1.fork()函数 1.2.写时拷贝 2.进程终止 2.1.进程的退出场景 2.1.1.退出码和错误码(正常终止&&任务失败) 2.1.2.异常终止 1.进程创建 1.1.fork()函数 在linux中,fork函数时非常重要的函数,它从已…

AI情报专刊来啦!《“AI换脸”威胁研究与安全策略》

目录 “AI换脸”常见的诈骗套路 1、伪造账号造谣传谣 2、冒充熟人进行诈骗 3、伪造身份申请银行贷款 4、“网络钓鱼”更加难以识别 5、冒充他人远程面试入职 6、冒名登录盗走银行余额 “AI换脸”的产业链 “AI换脸”使用到的技术 人脸识别和关键点检测 图像/视频合成技术 生成对…

大型文物三维扫描抄数服务3d建模造型设计逆向贴图等比例制作仿制

大型文物三维扫描数字化建模是一项前沿的技术,它运用高精度的扫描设备,将文物的三维形态精确地捕捉下来,再通过专业的建模软件,将这些数据转化为数字化的三维模型。这一技术的出现,不仅极大地提升了文物保护的效率和精…

打造你的HTML5打地鼠游戏:零基础入门教程

🌟 前言 欢迎来到我的技术小宇宙!🌌 这里不仅是我记录技术点滴的后花园,也是我分享学习心得和项目经验的乐园。📚 无论你是技术小白还是资深大牛,这里总有一些内容能触动你的好奇心。🔍 &#x…

使用Visual Studio创建跨平台CMake项目

作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 创建跨平台项目的意义是什么? 跨平台CMake项目的意义在于提供一种统一的构建系统,使得开发者可以编写一份…

详细理解Transformer

上一篇文章中,我们解读了Transformer中的Self-Attention的实现细节,这篇文章中,就Transformer的整体做一个算法解读。 首先,我们还是把Transformer的架构图贴出来,作为本篇内容的抓手。 从图中我们可以看到&#xff0…

RansomwareSim:一款功能强大的勒索软件模拟研究学习工具

关于RansomwareSim RansomwareSim是一款功能强大的勒索软件模拟研究学习工具,该工具是为网络安全教育和培训目的开发的模拟勒索软件应用程序,它旨在为广大研究人员演示勒索软件如何加密系统上的文件并与命令和控制服务器通信,以更好地了解勒…

海豚调度系列之:单机部署

海豚调度系列之:单机部署 一、前置准备工作二、启动 DolphinScheduler Standalone Server三、登录 DolphinScheduler四、启停服务五、配置数据库 Standalone 仅适用于 DolphinScheduler 的快速体验. 如果你是新手,想要体验 DolphinScheduler 的功能&…

A survey on influence maximization models

ABSTRACT 影响力最大化是社交网络分析中的一个重要研究领域,研究人员关注的是检测有影响力的节点。有影响力节点的检测在计算机科学、舆论传播、政治运动或经济学等多个学科中引起了极大的兴趣,在这些学科中,系统通常被建模为图形。影响力最大…

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的交通标志识别系统详解(深度学习模型+UI界面代码+训练数据集)

摘要:本篇博客详细介绍了利用深度学习构建交通标志识别系统的过程,并提供了完整的实现代码。该系统采用了先进的YOLOv8算法,并与YOLOv7、YOLOv6、YOLOv5等早期版本进行了性能评估对比,分析了性能指标如mAP、F1 Score等。文章深入探…

CSS 背景

CSS 背景 背景颜色 背景颜色若不设置,默认为透明(transparent) background-color: 颜色;背景颜色半透明 background: rgba(0, 0, 0, 0.3)前三个参数设定颜色,最后一个参数(例如上述例子中的0.3)设定透明度。0~1: 0…