当前位置: 首页 > news >正文

Pygame中自定义事件处理的方法2-1

1 Pygame事件处理流程

Pygame中的事件处理流程如图1所示。

图1 Pygame中事件处理流程

系统事件包括鼠标事件和键盘事件等,当用户点击了鼠标或者键盘时,这些事件会自动被放入系统的事件队列中。用户自定义事件需要通过代码才能被放入事件队列中。Pygame程序从事件队列中取出事件,根据不同的事件进行不同的处理。

相关链接1 Pygame处理系统事件的方法请参考

《Pygame中监控键盘按键的方法》

《《Python游戏编程入门》注-第4章2》

2 自定义事件处理方法

Pygame处理自定义事件的步骤是首先创建自定义事件,之后将自定义事件放入事件队列中,最后处理该事件。

2.1 创建自定义事件

创建自定义事件的代码如图2所示。

图2 创建自定义事件的代码

其中,pygame.USEREVENT是自定义事件的起始值,如果定义多个事件,则在其值的基础上加上相应数字即可。

相关链接2  Pygame中最多可以定义pygame.NUMEVENTS个事件,其值是65535。

2.2 将自定义事件放入事件队列

通过pygame.time.set_timer()方法将自定义事件放入事件队列,代码如图3所示。

图3 将自定义事件放入事件队列的代码

pygame.time.set_timer()方法创建了一个定时器,每隔3000毫秒,就会把print_message这个事件放入到事件队列中。

2.3 处理自定义事件

处理自定义事件的代码如图4所示。

图4 处理自定义事件的代码

其中,第7-8行中的pygame.event.get()方法通过while True循环不断地从事件队列中取出事件,第9行代码通过event.type对取出的事件进行判断,如果是自定义事件print_message,则打印“Hello Pygame”消息。

3 完整代码及运行效果

3.1 完整代码

Pygame处理自定义事件的完整代码如图5所示。

图5 Pygame处理自定义事件的完整代码

3.2 运行效果

Pygame处理自定义事件完整代码的运行效果如图6所示。

图6 Pygame处理自定义事件完整代码的运行效果

从图6中可以看出,因为自定义事件每隔3000毫秒被放入队列中,因此程序大概每隔3000毫秒会打印“Hello Pygame”消息。

相关文章:

  • DeepSeek-V3模型底层架构的核心技术一(多Token预测(MTP)技术)
  • Python 内置函数 isinstance
  • 【爬虫】使用 Scrapy 框架爬取豆瓣电影 Top 250 数据的完整教程
  • java八股文-mysql
  • SQL与数据库程序设计
  • 用队列实现栈
  • 人工智能之目标追踪DeepSort源码解读(yolov5目标检测,代价矩阵,余弦相似度,马氏距离,匹配与预测更新)
  • 牛顿法:用泰勒级数求解平方根的秘籍
  • 004 python变量
  • OpenVAS 工具使用全攻略
  • java练习(24)
  • 《解锁自然语言处理:让公众正确拥抱AI语言魔法》
  • LabVIEW中的icon.llb 库
  • 【华为OD机考】2024E+D卷真题【完全原创题解 详细考点分类 不断更新题目 六种主流语言Py+Java+Cpp+C+Js+Go】
  • Transformer(3): Add Norm
  • React VS Vue
  • 【R语言】方差分析
  • 什么是大模型以及如何部署大模型
  • 基于大数据的网购球鞋分析系统的设计与实现
  • CSS Grid 网格布局,以及 Flexbox 弹性盒布局模型,它们的适用场景是什么?
  • 巴基斯坦称约50名印度士兵在克什米尔实控线丧生
  • 纪录片《中国》原班人马打造,《船山先生》美学再升级
  • 欧派家居:一季度营收降4.8%,目前海外业务整体体量仍较小
  • 圆桌丨中俄权威专家详解:两国携手维护战后国际秩序,捍卫国际公平正义
  • 普京:“胜利日停火”已开始生效
  • 售卖自制外挂交易额超百万元,一男子因提供入侵计算机系统程序被抓