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

简介:

本节书摘来自异步社区《Python和Pygame游戏开发指南》一书中的第2章,第2.6节,作者[美]Al Sweigart(斯维加特), 李强 译,更多章节内容可以访问云栖社区“异步社区”公众号查看。

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


screenshot

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行开始执行。


screenshot

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

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

相关文章
|
14小时前
|
NoSQL Serverless Python
在Python的Pandas中,可以通过直接赋值或使用apply函数在DataFrame添加新列。
在Python的Pandas中,可以通过直接赋值或使用apply函数在DataFrame添加新列。方法一是直接赋值,如`df['C'] = 0`,创建新列C并初始化为0。方法二是应用函数,例如定义`add_column`函数计算A列和B列之和,然后使用`df.apply(add_column, axis=1)`,使C列存储每行A、B列的和。
7 0
|
2天前
|
机器学习/深度学习 数据可视化 TensorFlow
Python用线性回归和TensorFlow非线性概率神经网络不同激活函数分析可视化
Python用线性回归和TensorFlow非线性概率神经网络不同激活函数分析可视化
|
4天前
|
Python 容器
python内置函数、数学模块、随机模块(二)
python内置函数、数学模块、随机模块(二)
|
4天前
|
索引 Python
python内置函数、数学模块、随机模块(一)
python内置函数、数学模块、随机模块(一)
|
4天前
|
Python
深入理解python的闭包函数
深入理解python的闭包函数
|
4天前
|
Python
python函数的返回值、嵌套方式以及函数中的变量(二)
python函数的返回值、嵌套方式以及函数中的变量(二)
|
4天前
|
存储 Python 容器
python函数的返回值、嵌套方式以及函数中的变量(一)
python函数的返回值、嵌套方式以及函数中的变量(一)
|
4天前
|
Python
深度解读python的函数(二):
深度解读python的函数(二)
|
4天前
|
Python
深度解读python的函数(一)
深度解读python的函数(一)
|
4天前
|
Python
【Python21天学习挑战赛】- 函数进阶
【Python21天学习挑战赛】- 函数进阶