Pygame 教程(1):创建第一个应用程序

本章,你将创建第一个 Pygame 应用程序。对于环境的配置,详见上一章

导航

上一章:预备篇
下一章:重要的概念及对象

新建文件

新建一个文件,命名为first_app.py

导入模块

在新建的文件中添加如下代码:

import sys

import pygame

上述代码将导入 pygame 和 sys 模块,以便使用这些库中的函数。

初始化 Pygame

pygame.init()

以上的代码将初始化 Pygame 模块。

设置窗口

SCREEN = pygame.display.set_mode((1200, 800))
pygame.display.set_caption('First Application')

以上的代码,使用了 pygame.display模块。这是一个很常用的模块,它用于控制显示屏幕及窗口,可以参照官方文档对此模块的解释。
pygame.display.set_mode函数将初始化窗口,第一个参数需要传入一个元组,表示窗口的大小,其他参数,本章暂时不会用到,请参见官方文档的解释
pygame.display.set_caption函数传入一个字符串,表示窗口的标题。
注意:请确保pygame.display.set_mode函数传入的是一个元组,而不是两个数,也就是不要漏了括号。

事件循环

事件循环,是 Pygame 以及大多数游戏框架中很重要的概念之一。在这个机制下,程序捕捉到的事件(event),诸如点击鼠标、按下键盘按键等,将依次添加到事件队列(event queue)中。
在 Pygame 中,游戏以循环的方式进行,每次循环,通常进行事件处理以及屏幕绘制
本章中,游戏循环的代码如下:

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
    pygame.display.update()

首先,由while True开始了游戏循环。
接下来,使用了pygame.event模块中的get函数。pygame.event模块用于与事件及事件队列进行交互。pygame.event.get函数将返回并清空事件队列中的所有事件,因此用for循环进行遍历。每个事件都是一个pygame.event.Event对象,该类定义了type属性,当此属性为pygame.QUIT时,代表用户点击了窗口标题栏中的“关闭”按钮,或其他退出的动作,触发了这个事件,此时将调用pygame.quitsys.exit函数以安全关闭窗口并退出程序。
事件循环后,调用了pygame.display.update函数,它将更新显示屏幕,即进行了屏幕重绘
注意:
1. 请确保调用了sys.exit函数,因为pygame.quit函数只是取消初始化所有的 Pygame 模块,并不会退出程序;同时,也不要仅调用sys.exit函数,尽管这在大多数情况下可以正常退出,但是没有正常地退出 Pygame 模块有可能会带来意想不到的后果。
2. 查阅官方文档,可以发现还有一个pygame.display.flip函数,它的作用与pygame.display.update函数一样,但是pygame.display.update函数允许传入一个参数,可以重绘窗口的一部分,而不是重绘整个窗口。当然,不传参数的pygame.display.update函数与pygame.display.flip函数一模一样。详见官方文档解释

完整代码

import sys

import pygame

pygame.init()

SCREEN = pygame.display.set_mode((1200, 800))
pygame.display.set_caption('First Application')

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()
    pygame.display.update()

代码运行截图:
代码运行结果

结语

至此,我们的第一个用 Pygame 创建的应用程序就完成了。下一章,我们将学习 Pygame 模块中的重要的概念及对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值