# 为了防止游戏窗口启动会立马关闭,在其中增加一个游戏循环(无限循环), for event in pygame.event.get(): #...def check_events(): # 为了防止游戏窗口启动会立马关闭,在其中增加一个游戏循环(无限循环), for event in pygame.event.get():...控制小飞机移动 当用户按键时,都会在pygame中注册一个事件,任何一个事件都是通过pygame.event.get()获取的,因此可以在函数体内,为每个按键都注册一个KEYDOWN事件。...用户请求程序关闭 sys.exit() elif event.type == pygame.KEYDOWN: if event.key...在主循环中,我们将使用这个编组在屏幕上绘制子弹,以及更新没颗子弹的位置。
一、pygame事件 1.简介 pygame事件可以处理游戏中的各种事情。其实在前两节的博客中,我们已经使用过他们了。...for event in pygame.event.get() 上面的代码将会创建当前等待处理的事件的一个列表,然后使用for循环来遍历里面的事件。...这样,我们将会根据事件产生的顺序依次地进行不同的操作。常见的事件是按键按下,按键释放以及鼠标移动。通常需要最先处理QUIT事件(在用户关闭窗口的时候会产生该事件。)...中除了pygame事件,还可以使用设备轮询的方法来检测是否有事件发生。...1.轮询键盘 在pygame中,使用pygame.key.get_pressed()来轮询键盘接口。这个方法会返回布尔值的一个列表,其中每个键一个标志。
每个事件的类型均为pygame.event.Event,并具有属性 type,它指示事件的类别,例如pygame.KEYDOWN表示按键,pygame.QUIT 表示窗口的关闭按钮被点击。...取决于type的值,Event实体可能具有其他属性,例如,KEYDOWN事件的key(ASCII 键代码)。...现在,cameo.py使用一个 Pygame 窗口,当单击标准“关闭”按钮时,该窗口应该关闭。...Pygame 提供了更多功能,包括: 绘制 2D 几何 绘制文字 管理可绘制 AI 实体(精灵)的分组 捕获与窗口,键盘,鼠标和操纵杆/游戏手柄相关的各种输入事件 创建自定义事件 播放和合成声音和音乐...总结 到现在为止,我们应该有一个应用,该应用使用 OpenCV 捕获(并可能操纵)图像,同时使用 Pygame 显示图像和捕获事件。
第 15 到 17 行扫描并处理游戏循环中的事件。您稍后也会参加活动。在这种情况下,唯一处理的事件是pygame.QUIT,当用户单击窗口关闭按钮时发生。 第 20 行用纯色填充窗口。...播放器关闭窗口。 游戏循环所做的第一件事是处理用户输入以允许玩家在屏幕上移动。因此,您需要某种方式来捕获和处理各种输入。您可以使用pygame事件系统执行此操作。...对于您的游戏,您将关注的事件类型是按键和窗口关闭。按键事件有事件类型KEYDOWN,关闭窗口事件有类型QUIT。不同的事件类型也可能具有与之关联的其他数据。...第 41 行和第 42行对名为 的事件类型进行了类似的检查QUIT。此事件仅在用户单击窗口关闭按钮时发生。用户还可以使用任何其他操作系统动作来关闭窗口。...当您将这些行添加到前面的代码并运行它时,您会看到一个带有空白或黑屏的窗口: 在您按下该键之前,该窗口不会消失Esc,或者QUIT通过关闭窗口来触发事件。
# 为了防止游戏窗口启动会立马关闭,在其中增加一个游戏循环(无限循环), for event in pygame.event.get(): #...中注册一个事件,任何一个事件都是通过pygame.event.get()获取的,因此可以在函数体内,为每个按键都注册一个KEYDOWN事件。...== pygame.QUIT: # QUIT用户请求程序关闭 sys.exit() elif event.type == pygame.KEYDOWN:...用户请求程序关闭 sys.exit() elif event.type == pygame.KEYDOWN: check_keydown_events...用户请求程序关闭 sys.exit() elif event.type == pygame.KEYDOWN: check_keydown_events
''' import pygame # 初始化pygame库,让计算机硬件准备 pygame.init() # ----------窗口相关操作----------- # 创建窗口 window...= pygame.display.set_mode([窗口宽,窗口高]) # 设置窗口标题 pygame.display.set_caption("窗口标题") # 加载资源图片,返回图片对象 image...)) # ----------事件相关操作----------- # 常见事件类型: # QUIT 关闭窗口 # KEYDOWN 键盘按键 # 获得当前所有持续按键 bools_tuple #...鼠标点击关闭窗口事件 if event.type == pygame.QUIT: print("关闭了窗口") sys.exit() # 2....键盘按下事件 if event.type == pygame.KEYDOWN: # 判断用户按下的键是否是a键 if event.key == pygame.K_a
:创建画面全屏 pygame.DOUBLEBUF:使用HWSURFACE或OPENGL是加上这个标志 pygame.HWSURFACE:使用硬件加速,在使用FULLSCREEN pygame.OPENGL...=0,display = 0) # 32 print(depth) # 设置窗口背景色 screen.fill((20, 20, 20)) # 开启一个事件循环处理发生的事件...while True: # 从消息队列中获取事件并对事件进行处理 for event in pygame.event.get(): if...exit(0) # 鼠标点击了窗口的关闭按钮 if event.type == pygame.QUIT: # 退出界面...pygame.quit() print('你点了关闭!')
要测试事件,您可以将鼠标悬停在窗口上,在窗口中单击,然后按键盘上的键。这些事件将打印到您的控制台窗口。...此输出显示正在发生的用户事件。这些事件将控制游戏,因为它们是由用户生成的。无论何时运行pygame.event.get()函数,您的代码都将参与这些事件。 在终端窗口中按CTRL+ C停止程序运行。...由于用户控制游戏功能和事件,我们还应该知道,当用户通过单击游戏窗口上角的“X”来请求关闭程序时,pygame.QUIT 会将其发送到事件队列。...虽然用户可能知道点击游戏窗口上角的“X”,但我们可能希望让某些其他用户事件触发退出程序的请求。我们可以使用KEYDOWN事件类型和一个或多个键来完成此操作。...该KEYDOWN事件意味着用户正在按下键盘上的键。为了我们的目的,让我们说Q密钥(如“退出”)或ESC密钥可以退出程序。
参数 QUIT 用户按下关闭按钮 none ATIVEEVENT Pygame...窗口缩放 size, w, h VIDEOEXPOSE Pygame窗口部分公开(expose) none...4 from pygame.locals import * 5 from sys import exit 6 7 ''' 8 事件...ATIVEEVENT Pygame被激活或者隐藏 gain, state 11 KEYDOWN...窗口缩放 size, w, h 22 VIDEOEXPOSE Pygame窗口部分公开(expose)
for event in pygame.event.get(): # 如果事件类型为 QUIT,则关闭窗口和程序 if event.type == pygame.QUIT...: run = False pygame.quit() quit() # 如果事件类型为 KEYDOWN,即按下键盘按钮...,则检查事件键 if event.type == pygame.KEYDOWN: # 如果按下的按钮是左箭头键,则减小 x 坐标 if...for event in pygame.event.get(): # 如果事件类型为 QUIT,则关闭窗口和程序 if event.type == pygame.QUIT: run =...for event in pygame.event.get(): # 如果事件类型为 QUIT,则关闭窗口和程序 if event.type == pygame.QUIT: run =
上一个程序,会一直运行下去,直到你关闭窗口而产生了一个QUIT事件,Pygame会接受用户的各种操作(比如按键盘,移动鼠标等)产生事件。...上个程序中,使用了pygame.event.get()来处理所有的事件,这好像打开大门让所有的人进入。...下表是一个 常用事件集: 事件 产生途径 参数 QUIT 用户按下关闭按钮 none ATIVEEVENT Pygame被激活或者隐藏 gain, state KEYDOWN 键盘被按下 unicode...窗口缩放 size, w, h VIDEOEXPOSE Pygame窗口部分公开(expose)?...处理键盘事件 键盘和游戏手柄的事件比较类似,为KEYDOWN和KEYUP,下面有一个例子来演示使用方向键移动一些东西。
各标志位具体含义如下所示: 标志位含义FULLSCREEN创建一个全屏窗口DOUBLEBUF创建一个“双缓冲”窗口,建议和HWSURFACE 和 OPENGL同时使用 NOFRAME 创建一个没有边框的窗口...RESIZEBLE创建一个可以改变大小的窗口OPENGL创建一个 OPENGL 渲染的窗口HWSURFACE创建一个硬件加速的窗口,必须和 FULLSCREEN 同时使用 游戏的主循环是一个无限循环,...事件在软件开发中非常重要,Pygame 把一系列的事件存放在一个队列里,并逐个进行处理 事件检索 使用函数 pygame.event.get()获取所有的事件,表 1-3 列出了 Pygame...中常用的事件 事件参数产生途径QUITnone用户按下关闭按钮ACTIVEEVENTgain, state激活或者隐藏Pygame KEYDOWNunicode, key, mod按下键KEYUPkey...窗口缩放VIDEOEXPOSEnone Pygame窗口部分公开(expose)USEREVENTcode触发一个用户事件 处理鼠标事件 在 Pygame 框架中,MOUSEMOTION 事件会在鼠标动作的时候发生
为了在屏幕上绘制玩家的飞船,我们将加载一幅图像,再使用Pygame()方法blit()绘制它。...在游戏中几乎可以使用各种类型的图像文件,但是使用位图(.bmp)文件最为简单,这是因为Pygame默认加载位图。虽然其他类型的图像也能加载,但是需要安装额外的库。...响应按键 因为在pygame中,每次按键都被注册为KEYDOWN事件,在check_events()中,我们通过event.type检测到KEYDOWN事件后还需进一步判断是哪个按键。...这里我们通过KETUO事件来判断。因此我们设置一个标志位moving_right来实现持续移动。原理如下: 飞船不动时,标志moving_right将为false。...重构 这里我们主要讲check_events()函数进行重构,将其中部分代码分成两部分,一部分处理KEYDOWN事件,一部分处理KEYUP事件。
$ pip install wheel $ pip install pygame‑1.9.3‑cp36‑cp36m‑win_amd64.whl 创建Pygame窗口及响应用户输入 新建一个文件夹...在游戏中几乎可以使用各种类型的图像文件,但是使用位图(.bmp)文件最为简单,这是因为Pygame默认加载位图。虽然其他类型的图像也能加载,但是需要安装额外的库。...响应按键 因为在pygame中,每次按键都被注册为KEYDOWN事件,在check_events()中,我们通过event.type检测到KEYDOWN事件后还需进一步判断是哪个按键。...这里我们通过KETUO事件来判断。因此我们设置一个标志位moving_right来实现持续移动。原理如下: 飞船不动时,标志moving_right将为false。...重构 这里我们主要讲check_events()函数进行重构,将其中部分代码分成两部分,一部分处理KEYDOWN事件,一部分处理KEYUP事件。
事件都是通过方法pygame.event.get()获取的,因此在函数check_events()中,我们需要指定要检查哪些类型的事件。每次按键都被注册为一个KEYDOWN事件。...检测到KEYDOWN事件时,我们需要检查按下的是否是特定的键。...检测pygame.KEYUP事件,以便玩家松开右箭头键时我们能够知道这一点;然后,我们将结合使用KEYDOWN和KEYUP事件,以及一个名为moving_right的标志来实现持续移动。...飞船不动时,标志moving_right将为False。玩家按下右箭头键时,我们将这个标志设置为True;而玩家松开时,我们将这个标志重新设置为False。...函数check_events()检测相关的事件,如按键和松开,并使用辅助函数check_keydown_events()和check_keyup_events() 来处理这些事件。
,都可以称为事件Event, 在之前的程序中,最后都会有一个while True的循环,这个循环会在程序运行期间一致运行,这就是Pygame的事件循环,所以才能看到窗口和图形,否则程序执行完成就停止,也就无法看到窗口和图形了...() pygame.quit() 这段代码实现了一个外星人可以在窗口中不断的移动反弹 我们可以增加一个键盘事件处理器,当按下上方向键或者下方向键时外星人可以上下移动,也就是说需要检测KEYDOWN事件并且检测按键是上方向键还是下方向键...Pygame 程序中的各种事件,在之前已经使用过Q键或者ESC键退出创建的窗口,除此之外还有其他很多Event,比较常用的有除了QUIT,还有鼠标事件,可以通过pygame.event.get()获取所有的事件...字母都是以K_开头,比如在使用上下方向键操作外星人时,还可以使用K_w键和K_s键来代替上和下方向键 鼠标事件 常用的事件除了键盘事件还有鼠标事件,既用鼠标来进行操作,常用的鼠标事件有三种 MOUSEBUTTONUP...定时器事件 Pygame中还有一种事件是定时器事件,既会按照固定的时间间隔生成事件,pygame定时器事件可以设置为任意间隔,如果定时器到时间,他会创建一个能够被事件循环检测到的事件,pygame设置定时器要使用
(): """响应按键和鼠标事件""" for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() 这个模块中导入了事件检查循环要使用的...事件都是通过方法pygame.event.get()获 取的,因此在函数check_events()中,我们需要指定要检查哪些类型的事件。每次按键都被注册 为一个KEYDOWN事件。...检测到KEYDOWN事件时,我们需要检查按下的是否是特定的键。...在函数check_events()内部,我们在事件循环中添加了一个elif代码块,以便在Pygame 检测到 KEYDOWN事件时作出响应(见)。...我们将让游 戏检测pygame.KEYUP事件,以便玩家松开右箭头键时我们能够知道这一点;然后,我们将结合使 用KEYDOWN和KEYUP事件,以及一个名为moving_right的标志来实现持续移动。
():#获取事件,如果鼠标点击右上角关闭按钮,关闭 if event.type in (QUIT,KEYDOWN): sys.exit() screen.fill...QUIT,KEYDOWN #初始化pygame pygame.init() #获取对显示系统的访问,并创建一个窗口screen #窗口大小为670x670 screen = pygame.display.set_mode...():#获取事件,如果鼠标点击右上角关闭按钮,关闭 if event.type in (QUIT,KEYDOWN): sys.exit() screen.fill...():#获取事件,如果鼠标点击右上角关闭按钮,关闭 if event.type in (QUIT,KEYDOWN): sys.exit() screen.fill...():#获取事件,如果鼠标点击右上角关闭按钮,关闭 if event.type in (QUIT,KEYDOWN): sys.exit() screen.fill
Pygame 是开源免费的,基于LGPL协议,可以使用该模块创建开源的软件或者游戏 更多关于 Pygame 的介绍可以参考 Pygame Wiki Install Pygame 安装 Pygame 推荐使用...是通过图形和文本绘制一个单独的窗口,在窗口中显示内容,可以对窗口大小颜色自定义,可以在窗口中绘制任何图形,通过调用pygame中的事件event,既键盘和鼠标的输入来对窗口内容进行操作 使用 Pygame...() 运行这段程序,控制台没有任何报错,但是也没有图形界面显示 这是因为代码执行结束后窗口会快速关闭,所以可以通过加入while循环来保持程序运行一段时间,并且通过监听键盘事件来终止程序 import...Rect 类表示特定大小和位置的矩形区域,使用该类可以设置窗口中对象的位置 Surface对象的get_rect()方法可以返回一个Rect类 绘制线条 绘制线条需要调用pygame.draw.line...# 设置窗口标题 pygame.display.set_caption('线条的绘制') bg_color = (120, 120, 255) while True: # 设置关闭窗口条件
领取专属 10元无门槛券
手把手带您无忧上云