Pythonpygame项目实战事件监听

目录

1. 在游戏循环中监听事件

2. 案例演示

2.1 案例概览

2.2 运行结果

1. 在游戏循环中监听事件

事件event:

就是游戏启动后,用户针对游戏所做的操作

例如:点击关闭按钮,点击鼠标,按下键盘

监听:

在游戏循环中,判断用户具体操作

只有捕获到用户具体的操作,才能有针对性的做出响应

简而言之,在游戏循环中编写一小段代码,通过这一小段代码,判断用户的具体操作行为,这个就叫做监听

代码实现:

pygame中通过pygame.event.get()可以获得用户当前所做动作的事件列表(因为同一时间用户所作的操作可能会有很多件)

用户可以同一时间做很多事情

提示:这段代码非常的固定,几乎所有的pygame游戏都大同小异!

2. 案例演示 2.1 案例概览

本节,我们将在上一小节的基础上(详情请见本专栏上一篇文章),完成捕获用户所做的动作事件列表。

以下代码中,使用了pygame.event.get()方法,get方法返回的类型为列表类型,因此,我们使用event_list变量来接收get方法返回的结果。但是,如果仅仅是这样改造代码,运行时在程序控制台输出了很多空的列表。因此,我们可以考虑增加if判断,判断是否用户进行了操作事件(是否有操作事件发生)。此时,再运行程序,就可以输出很多操作细节了。(可以移动鼠标或者按下键盘试试),控制台会输出捕获的用户操作。

import pygame pygame.init() # 创建游戏的窗口 640*642 screen = pygame.display.set_mode((640, 642)) # 绘制背景图像 bg = pygame.image.load("./飞机大战资料包/images/background1.webp") screen.blit(bg, (0, 0)) # 绘制英雄的飞机 hero = pygame.image.load("./飞机大战资料包/images/me1.webp") 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) # 捕获事件 event_list = pygame.event.get() if len(event_list) > 0: print(event_list) # 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.2 运行结果

运行结果如下所示:

到此这篇关于Python pygame 项目实战事件监听的文章就介绍到这了,更多相关Python事件监听内容请搜索易知道(ezd.cc)以前的文章或继续浏览下面的相关文章希望大家以后多多支持易知道(ezd.cc)!

推荐阅读

    确定java按钮响应事件的代码

    确定java按钮响应事件的代码,,* 阅读本文可以结合最后在java登录窗口界面下面是一个链接。 是定义的容器。 容器(CP =得到内容面板); / /

    90后瓶门事件图片

    90后瓶门事件图片,,现在孩子们还太早,有些女孩子总是在门口等一会儿,最近发生了一次酒瓶门事件。 近日,山东一家寄宿学校的一名女生带着一瓶

    01-Vue项目实战-网易云音乐-准备工作

    01-Vue项目实战-网易云音乐-准备工作,网易,项目,前言在接下来的一段时间,我会仿照网易云音乐,利用Vue开发一个移动端的网易云音乐项目。在做

    唐山打人事件视频源自哪里

    唐山打人事件视频源自哪里,华为,视频,唐山打人事件视频源自哪里唐山打人事件视频来源于哪里?为什么这个网友人敢于发出这个视频?不怕被威胁

    Win7系统怎么打开事件查看器?

    Win7系统怎么打开事件查看器?,查看器,事件, win7系统中有一个事件查看器,事件查看器是重要的系统管理软件,通过它可以了解到某项功能配置、

    苹果7爆炸事件真的吗|iphone爆炸事件

    苹果7爆炸事件真的吗|iphone爆炸事件,,苹果7爆炸事件真的吗两个标志性建筑 。“9·11事件”指的是美国东部时间2001年9月11日上午(北京时间

    VB里的mousemove事件举例

    VB里的mousemove事件举例,鼠标,事件,本文目录VB里的mousemove事件举例C# 怎么在mousemove事件中判断鼠标是否运动能够在窗体上触发MouseMo

    js默认事件汇总

    js默认事件汇总,事件,表单,默认事件   就是浏览器通过HTML标签或DOM元素提供的一些功能性的默认行为。比如在a标签href属性上的跳转,右键