《pygame游戏开发实战指南》第一节 初识pygame
《pygame游戏开发实战指南》第一节 初识pygame
在本节,我们将学习如何下载安装pygame这个游戏开发库,并会运行一个简单的示例项目来认识pygame。
1.1 下载安装pygame
在Windows上安装pygame
打开一个命令行窗口,然后输入命令
pip install pygame
并回车即可。如果最后出现
Successfully installed pygame
文本,则表明我们已经成功安装了pygame这个库。
注:笔者在本专栏中使用的pygame版本为2.6.0
当然,我们还要验证下是否可以正常使用pygame。在命令行窗口中输入
python
后回车,进入Python命令行界面。然后输入
import pygame
,回车后如果出现了pygame的欢迎消息,说明安装没有任何问题,pygame这个库是能够被正常使用的。
在MacOS上安装pygame
同理,打开一个终端,输入
pip3 install pygame
后回车即可下载安装pygame。验证方式同上,笔者这里不再赘述。
1.2 运行pygame示例项目
打开命令行窗口,通过该命令
python -m pygame.examples.aliens
我们就可以打开pygame自带的外星人小游戏。玩法如下:
- 左右方向键控制主角移动
- 空格键射击
笔者会在后面的实战章节中带大家一起动手开发实现这个外星人小游戏。现在,让我们来学习下下面这个简单的pygame示例代码1-1。
import sys
import pygame
pygame.init() # 1
screen = pygame.display.set_mode((1100, 600)) # 2
pygame.display.set_caption('Dino Runner') # 3
icon = pygame.image.load('icon.png') # 4
pygame.display.set_icon(icon)
dino = pygame.image.load('dino_start.png') # 5
dino_rect = dino.get_rect()
dino_rect.topleft = (80, 300)
while True: # 6
for event in pygame.event.get(): # 7
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
screen.fill((255, 255, 255)) # 8
screen.blit(dino, dino_rect) # 9
pygame.display.flip() # 10
运行结果如下:
代码解释如下:
#1
pygame.init()
用来初始化pygame库中的各个模块,在使用pygame各个函数或类之前,务必先编写这行代码。
#2调用
pygame.display
模块中的
set_mode()
函数来设置游戏窗口的大小(尺寸大小以元组数据类型传入)。该函数会返回一个窗口对象,我们将其保存到
screen
这个变量中,通过该对象我们就可以在窗口上绘制图形或添加图片以及文本。
pygame.display
这个模块专门用于窗口管理和屏幕显示。
#3调用
pygame.display
模块中的
set_caption()
函数来设置窗口标题。
#4调用
pygame.image
模块中的
load()
函数来加载一张图片,此处加载的是窗口的图标。该函数会返回一个图片对象,我们将其保存到了
icon
变量中。接着,调用
pygame.display
模块中的
set_icon()
函数设置窗口图标。
#5加载小恐龙主角图片,调用
get_rect()
函数获取小恐龙图片所在的矩形区域(一个
Rect
对象),并设置这个矩形区域左上角
topleft
在屏幕中的位置。
注:屏幕的原点坐标在左上角,且向右为X轴正方向,向下为Y轴正方向。笔者会在后续章节中带大家了解pygame中的坐标系。
#6进入一个游戏循环,在这个循环中pygame将不断检测和处理用户输入、更新游戏状态、或者更新屏幕内容等。
#7通过
pygame.event
模块的
get()
函数,我们可以获取到一个事件队列。在for循环中我们读取各个事件并进行处理。如果事件类型
event.type
是
pygame.QUIT
(即关闭窗口),就调用
pygame.quit()
函数退出游戏。
sys.exit()
表示终止当前python程序,清理并退出执行当前pygame程序的线程。
#8调用窗口对象screen的
fill()
函数填充窗口颜色,传入一个代表颜色rgb值的元组即可,这里传入的是白色rbg值。
#9调用窗口对象screen的
blit()
函数将主角图片显示到屏幕上,位置就是之前设置的矩形区域
dino_rect
。我们也可以往
blit()
中传入一个坐标元组(x, y)来设置主角在屏幕上的位置,比如
screen.blit(dino, (80, 300))
#10调用
pygame.display
模块中的
flip()
函数刷新屏幕内容。我们也可以调用
pygame.display.update()
来实现相同效果。后者还可以传入一个矩形区域表示让pygame只更新这块区域中的内容。比如下方这行代码会让pygame只更新一个左上角坐标为(0, 0),宽高都为350像素的矩形区域。
pygame.display.update((0, 0, 350, 350))
1.3 小结
在本节,我们知道了如何在Windows和MacOS系统上安装pygame这个库,并且通过了一个简单的示例代码了解了pygame运行的基础结构、运行原理和一些常用函数。如果有实在不理解的地方暂且可以先放一下,看到后面章节说不定就豁然开朗了。