文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python pygame项目实战监听退出事件

2024-04-02 19:55

关注

1. 事件监听

首先,我们简单回顾一下事件监听,可以简单概括如下:

注意:我们想在游戏中实现监听退出事件并且退出游戏,其实代码非常固定(代码形式都差不多),因为几乎所有的pygame游戏都大同小异。

2. 案例演示

2.1 案例大体思路

代码实现大体思路:首先,我们考虑在游戏循环内部再增加一个for循环,来检测一下当前这一时刻到底发生了哪些事件。然后,在循环体内部,再增加一个条件判断,判断一下事件类型是否是pygame定义的QUIT事件(对应的就是用户点击的关闭按钮)。一旦发现用户点击关闭按钮,我们就可以在if语句下方,编写代码退出程序。

2.2 代码演示

具体代码演示如下所示:可以在上一节(本专栏上一篇文章)中代码的基础上进行修改。

import pygame
pygame.init()

# 创建游戏的窗口 640*642
screen = pygame.display.set_mode((640, 642))

# 绘制背景图像
bg = pygame.image.load("./飞机大战资料包/images/background1.jpg")
screen.blit(bg, (0, 0))

# 绘制英雄的飞机
hero = pygame.image.load("./飞机大战资料包/images/me1.png")
screen.blit(hero, (280, 500))

# 可以在所有绘制工作完成之后,统一调用update方法
pygame.display.update()

# 创建时钟对象
clock = pygame.time.Clock()

# 游戏循环->意味着游戏的正式开始

# 1. 定义rect记录飞机的初始位置
hero_rect = pygame.Rect(280, 500, 102, 126)

# 游戏循环->意味着游戏的正式开始
while True:
    # 希望无限循环内部的代码每秒钟重复循环60次
    # 可以指定循环体内部的代码执行的频率
    clock.tick(60)

    # 监听事件
    for event in pygame.event.get():
        # 判断事件类型是否是退出事件
        if event.type == pygame.QUIT:
            print("游戏退出...")

            # quit卸载所有的模块
            pygame.quit()

            # exit()直接终止当前正在执行的程序
            exit()

    # 2. 修改飞机的位置
    hero_rect.y -= 1
    # 判断飞机的位置
    if hero_rect.y <= -126:
        hero_rect.y = 642

    # 3. 调用blit方法绘制图像
    # 先绘制背景,在绘制飞机,就不会留下残影(背景把上一次的飞机遮挡)
    screen.blit(bg, (0, 0))
    screen.blit(hero, hero_rect)

    # 4. 调用update方法更新显示
    pygame.display.update()
pygame.quit()

2.3 运行结果

代码运行结果如下图所示:当运行程序后,点击退出按钮,可以正常终止屏幕中的游戏画面,并且在控制台输出如下图结果。

到此这篇关于Python pygame项目实战监听退出事件的文章就介绍到这了,更多相关Python 监听退出事件内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯