开始使用Pygame
Pygame是一套免费使用的、开源的Python模块。 而顾名思义,它可以用来构建游戏。你可以对游戏进行编码,然后使用特定的命令将其改为可执行文件,你可以与你的朋友分享,向他们展示你所做的工作。 它包括旨在与Python编程语言一起使用的计算机图形和声音库。 PyGame 2.0.1是写这篇文章时的最新版本。
设置Pygame:
在默认情况下,Python并没有把PyGame作为一个内置库。所以我们必须使用命令提示符来安装它。打开命令提示符,输入以下命令。
pip install pygame
如果你已经安装了PyGame,使用下面的命令来检查版本。
pip show pygame
如果你的Pygame没有更新到最新版本,请使用以下命令。
pip install pygame --upgrade
如果这个命令显示ModuleNotFoundError,那么很明显pygame没有被安装。
简单的PyGame例子:
使用的功能。
- pygame.init()。该命令用于启动 pygame 模块。
- pygame.display.set_mode((500,500))。这个命令用来制作一个所需尺寸的窗口,(宽度,高度)。返回值是一个Surface对象,它是我们进行不同图形操作的对象。
- pygame.display.set_caption(title = “”)。该命令用于设置窗口/棋盘的标题。
- pygame.event.get()。这是用来清空事件队列的。如果我们不调用这个,窗口信息就会开始堆积,而且,在操作系统看来,游戏会变得没有反应。
- pygame.QUIT:当我们点击窗口一角的关闭按钮时,它用于终止该事件。
import pygame
pygame.init()
# CREATING CANVAS
canvas = pygame.display.set_mode((500, 500))
# TITLE OF CANVAS
pygame.display.set_caption("My Board")
exit = False
while not exit:
for event in pygame.event.get():
if event.type == pygame.QUIT:
exit = True
pygame.display.update()
输出:
在Pygame窗口中添加图片:
着色是将游戏对象渲染到表面的过程。当我们创建游戏对象时,我们应该渲染它。如果我们不对游戏对象进行渲染,它就会显示出黑色的窗口。在pygame中,有一种方法可以完成这个遮蔽过程,即blit()。
它是任何游戏中最慢的操作之一,所以我们在使用它的时候需要小心,因为我们不应该在每一帧中向屏幕上注入很多内容。
语法:blit(src, dest)
src : 它是我们要在屏幕上显示的图像的来源。
dest : 它是我们希望显示图像的坐标。
代码:
import pygame
pygame.init()
color = (255,255,255)
position = (0,0)
# CREATING CANVAS
canvas = pygame.display.set_mode((500,500))
# TITLE OF CANVAS
pygame.display.set_caption("Show Image")
image = pygame.image.load("Screenshot.png")
exit = False
while not exit:
canvas.fill(color)
canvas.blit(image, dest = position)
for event in pygame.event.get():
if event.type == pygame.QUIT:
exit = True
pygame.display.update()
输出:
Pygame窗口中的矩形框:
在Pygame中,我们使用rect()方法在窗口上绘制矩形框。Pygame使用Rect对象来存储和操作矩形区域。它可以由左、上、宽、高值的组合形成。
import pygame
pygame.init()
color = (255,255,255)
rect_color = (255,0,0)
# CREATING CANVAS
canvas = pygame.display.set_mode((500,500))
# TITLE OF CANVAS
pygame.display.set_caption("Show Image")
image = pygame.image.load("Screenshot.png")
exit = False
while not exit:
canvas.fill(color)
for event in pygame.event.get():
if event.type == pygame.QUIT:
exit = True
pygame.draw.rect(canvas, rect_color,
pygame.Rect(30,30,60,60))
pygame.display.update()
输出: