深入领略Python多媒体库Pygame

Pygame是一个用于Python的多媒体库,用于建造游戏和多媒体应用措施。它是一种利用 SDL(Simple DirectMedia Layer)编写的游戏库。

在本节中,我们将先容pygame函数的基本常识,但不界说类和工具。

导入模块

要利用Pygame库中的要领,必需首先导入模块:

import pygame

import语句将pygame版本和pygame网站的链接写到节制台:

pygame 1.9.6
Hello from the pygame community. https://www.pygame.org/contribute.html

深入领略Python多媒体库Pygame

Pygame导入语句始终放在措施的开头。 它将pygame类,要领和属性导入当前名称空间。 此刻可以通过pygame.method()挪用此新要领。

譬喻,我们此刻可以利用以下呼吁初始化或退出pygame:

pygame.init()

pygame.quit()

函数display.set_mode()配置屏幕尺寸。 它返回一个我们分派给变量屏幕的Surface工具。 此变量将是最常用的变量之一。 它代表了我们看到的窗口:

screen = pygame.display.set_mode((800, 500))

深入领略Python多媒体库Pygame

您此刻可以运行该措施并对其举办测试。 今朝,它的浸染很小。 它会打开一个窗口并当即将其封锁。

显示事件轮回

任何交互式应用措施中最重要的部门是事件轮回。 对事件做出回响答允用户与应用措施举办交互。 事件是措施中大概产生的工作,譬喻

鼠标点击

鼠标移动

键盘按键

哄骗杆行动

以下是一个无限轮回,该轮回将所有事件打印到节制台:

while True:
    for event in pygame.event.get():
        print(event)

实验移动鼠标,单击鼠标按钮或在键盘上键入内容。 您执行的每个操纵城市发生一个事件,该事件将打印在节制台上。 看起来像这样:

[linuxidc@linux:~/www.linuxidc.com]$ python3 linuxidc.com.py
pygame 1.9.6
Hello from the pygame community. https://www.pygame.org/contribute.html
<Event(1-ActiveEvent {'gain': 0, 'state': 1})>
<Event(1-ActiveEvent {'gain': 0, 'state': 2})>
<Event(1-ActiveEvent {'gain': 1, 'state': 1})>
<Event(4-MouseMotion {'pos': (66, 143), 'rel': (66, 143), 'buttons': (0, 0, 0), 'window': None})>
<Event(4-MouseMotion {'pos': (71, 143), 'rel': (5, 0), 'buttons': (0, 0, 0), 'window': None})>

认识Python多媒体库Pygame

由于我们处于infite轮回中,因此无法从应用措施中退出该措施。 为了退出措施,使节制台成为勾当窗口并键入ctrl-C。 这会将以下动静写入节制台:

<Event(1-ActiveEvent {'gain': 0, 'state': 1})>
^CTraceback (most recent call last):
  File "linuxidc.com.py", line 7, in <module>
    for event in pygame.event.get():
KeyboardInterrupt

认识Python多媒体库Pygame

正确退失事件轮回

为了从应用措施内部利用窗口封锁按钮(QUIT事件)正确退出应用措施,我们修改了事件轮回。 首先,我们先容运行的布尔变量,并将其配置为True。 在事件轮回中,我们查抄QUIT事件。 假如产生,我们将运行配置为False:

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

pygame.quit()

一旦事件轮回,我们将挪用pygame.quit()函数以正确竣事应用措施。

界说颜色

颜色界说为基色为赤色,绿色和蓝色的元组。 这称为RGB模子。 每个基色都暗示为介于0(最小)和255(最大)之间的数字,该数字在内存中占用1个字节。 RGB颜色因此暗示为一个3字节的值。 殽杂两种或更多种颜色会发生新的颜色。 通过这种方法,总共可以显示1600万种差异的颜色。

深入领略Python多媒体库Pygame

让我们将基色界说为树基值的元组。 由于颜色是常数,因此我们将利用大写字母写它们。 缺少所有颜色城市导致玄色。 所有三个分量的最大值均为白色。 三个沟通的中间值发生灰色:

BLACK = (0, 0, 0)
GRAY = (127, 127, 127)
WHITE = (255, 255, 255)

树的基色界说为:

RED = (255, 0, 0)
GREEN = (0, 255, 0)
BLUE = (0, 0, 255)

通过殽杂两种基色,我们得到了更多的颜色:

YELLOW = (255, 255, 0)
CYAN = (0, 255, 255)
MAGENTA = (255, 0, 255)

在事件轮回的末了,我们添加了以下内容:

screen.fill(YELLOW)
pygame.display.update()

fill(color)要领利用指定的颜色填充整个屏幕。 此时,将不会显示任何内容。 为了显示任何内容,必需挪用pygame.display.update()函数。

深入领略Python多媒体库Pygame

切换配景致

在措施的开头,我们添加了一个新的变量background并将其初始化为灰色:

background = GRAY

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsdjsg.html