《Python和Pygame游戏开发指南》——2.6 QUIT事件和pygame.quit()函数

2.6 QUIT事件和pygame.quit()函数

Event对象有一个名为type的成员变量(member variable,也叫作属性,attributes或properties),它告诉我们对象表示何种事件。针对pygame.locals模块中的每一种可能的类型,Pygame都有一个常量变量。第9行检查Event对象的type是否等于常量QUIT。记住,由于我们使用了from pygame.locals import *形式的import语句,主要输入QUIT就可以了,而不必输入pygame.locals.QUIT。

如果Event对象是一个停止事件,就会调用pygame.quit()和sys.exit()函数。pygame. quit()是pygame.init()函数的一种相反的函数,它运行的代码会使得Pygame库停止工作。在调用sys.exit()终止程序之前,总是应该先调用pygame.quit()。通常,由于程序退出之前,Python总是会关闭pygame,这不会真的有什么问题。但是,在IDLE中有一个bug,如果一个Pygame程序在调用pygame.quit()之前就终止了,将会导致IDLE挂起。

我们没有if语句来针对其他的Event对象类型运行代码,因此,当用户点击鼠标、按下键盘按键或者导致创建任何其他类型的Event对象的时候,没有事件处理代码。用户可能会做一些事情来创建这些Event对象,但是,这并不会对程序有任何改变,因为程序不会有任何针对这些类型的Event对象的事件处理代码。在第8行中的for循环执行完后,就处理完了pygame.event.get()所返回的所有Event对象,程序继续从第12行开始执行。

第12行调用了pygame.display.update()函数,它把pygame.display.set_ mode()所返回的Surface对象绘制到屏幕上(记住,我们将这个对象存储在了DISPLAYSURF变量中)。由于Surface对象没有变化(例如,没有被本章稍后将会介绍的某些绘制函数修改),每次调用pygame.display.update()的时候,将会重新绘制相同的黑色图像。

这就是整个程序。在第12行代码执行之后,无限的while循环再次从头开始。这个程序只是让一个黑色的窗口出现在屏幕上,不断地检查QUIT事件,然后重复地将这个没有变化的黑色窗口重新绘制到屏幕上,除此之外,什么也不做。接下来,我们来学习像素、Surface对象、Color对象、Rect对象和Pygame绘制函数,以了解如何让一些有趣的内容出现在这个窗口中,而不只是一片黑压压的颜色。

时间: 2024-10-22 06:02:02

《Python和Pygame游戏开发指南》——2.6 QUIT事件和pygame.quit()函数的相关文章

《Python和Pygame游戏开发指南》——1.7 安装Pygame

1.7 安装Pygame Pygame不是Python所附带的.和Python一样,Pygame也是可以免费使用的.你必须下载并安装Pygame,这与下载和安装Python解释器一样容易.在Web浏览器中,访问http://pygame.org 并且在该Web站点左边的"Downloads"上点击.本书假设你使用的是Windows操作系统,但是Pygame在每种操作系统上的工作方式都是相同的.你需要针对自己的操作系统以及所安装的Python版本,下载相应的Pygame安装程序. 你不需

《Python和Pygame游戏开发指南》——2.19 用pygame.image.load()和blit()绘制图像

2.19 用pygame.image.load()和blit()绘制图像 如果你想要在屏幕上绘制简单的形状,绘制函数已经很好用了,但是,很多游戏都有图像(也叫作精灵,sprite).Pygame能够从PNG.JPG.GIF和BMP图像文件中,将图像加载到Surface对象上.这些图像文件格式的区别参见http://invpy.com/formats. 猫的图像存储在一个名为cat.png 的文件中.要加载这个文件的图像,将字符串'cat.png'传递给pygame.image.load()函数.

《Python和Pygame游戏开发指南》——2.2 使用Pygame的Hello World程序源代码

2.2 使用Pygame的Hello World程序源代码 我们用Pygame开发的第一个程序,是在屏幕上显示一个带有"Hello World"的窗口的小程序.通过点击IDLE的File菜单,然后选择New Window,打开一个新的文件编辑器.在IDLE的文件编辑器中,输入如下的代码并将其保存为blankpygame.py .然后,按下F5键或者从文件编辑器顶部的菜单选择Run > Run Module,运行该程序. 记住,不要输入每一行开始处的行号和句点(那些只是为了方便在本

《Python和Pygame游戏开发指南》——2.14 基本的绘制函数

2.14 基本的绘制函数 Pygame提供了几个不同的函数,用于在一个Surface对象上绘制不同的形状.这些形状包括矩形.圆形.椭圆形.线条或单个的像素,通常都称为绘制图元(drawing primitives).打开IDLE的文件编辑器并且输入如下的程序,将其保存为drawing.py . 当这个程序运行的时候,会显示如图2-6所示的窗口,直到用户关闭该窗口. 注意我们是如何为每种颜色设置常量变量的.这么做使得代码更具有可读性,因为在源代码中看到GREEN,很容易理解这是表示绿色,比使用(0

《Python和Pygame游戏开发指南》——导读

前 言 你好!本书将教你如何使用Python语言和Pygame框架(也叫作Pygame库)来开发图形化的计算机游戏.Pygame使得开发2D图形程序变得很容易.Python和Pygame框架都可以从http://python.org和http://pygame.org 免费下载.你只需要有计算机和这本书,就可以开始开发自己的游戏了. 本书是一本中级编程图书.如果你完全是初次接触编程,你可能需要努力阅读源代码示例并搞清楚程序如何工作.然而,如果你此前学习过如何使用Python编程,这将会容易一些.

《Python和Pygame游戏开发指南》——2.23 本章小结

2.23 本章小结 本章介绍了使用Pygame框架编写图形化游戏的基础知识.当然,只是了解这些函数,可能并不足以帮助你学习如何使用这些函数来编写游戏.本书中其他的各章,每一章都关注一个较小的.完整的游戏的源代码.这会帮助你认识到完整的游戏程序看上去是什么样的,以便随后你可以对如何编写自己的游戏程序有更多的思路. 和<Invent Your Own Computer Games with Python>一书不同,本书假设你了解基本的Python编程.如果你想不起来变量.函数.循环.if-else

《Python和Pygame游戏开发指南》——1.4   Mac OS X上的安装说明

1.4 Mac OS X上的安装说明 Mac OS X 10.5带有Apple预安装的Python 2.5.1.在编写本书的时候,Pygame只支持Python 2,而不支持Python 3.然而,本书中的程序在Python 2和Python 3下都能工作. Python Web站点还有一些关于在Mac上使用Python的额外信息:http://docs.python.org/dev/using/mac.html.

《Python和Pygame游戏开发指南》——2.18 帧速率和pygame.time.Clock对象

2.18 帧速率和pygame.time.Clock对象 帧速率(frame rate)或刷新速率(refresh rate)是程序每秒钟绘制的图像的数目,用FPS或帧/秒来度量(在计算机显示器上,FPS常见的名称是赫兹.很多显示器的帧速率是60Hz,或者说每秒60帧).视频游戏中,较低的帧速率会使得游戏看上去抖动或卡顿.如果游戏包含的代码太多了,以至于无法运行来频繁地绘制到屏幕上,那么,FPS会下降.但是,本书中的游戏都足够简单,甚至在较旧的计算机上也不会有问题. pygame.time.Cl

《Python和Pygame游戏开发指南》——2.4 游戏循环和游戏状态

2.4 游戏循环和游戏状态 第7行是一个while循环,它有一个直接为True值的条件.这意味着它不会因为该条件求得False而退出.程序执行退出的唯一方式是执行一条break语句(该语句将执行移动到循环之后的第一行代码)或者sys.exit()(它会终止程序).如果像这样的一个循环位于一个函数中,一条return语句也可以使得执行退出循环(同时退出函数的执行). 本书中的游戏,其中都带有这样的一些while True循环,并且带有一条将该循环称为"main game loop"的注释