Pygame 是被设计用来写游戏的 Python 模块集合, Pygame 是在优秀的 SDL 库上开发的功能包,专为电子游戏设计,包含图像、声音功能和网络支持,允许实时电子游戏研发而无须被低级语言(如机器语言和汇编语言)束缚。
基于这样一个设想,所有需要的游戏功能和理念(主要是图像方面)都完全简化为游戏逻辑本身,所有的资源结构都可以由高级语言提供,如 Python 。虽然不使用 Pygame 也可以写一个游戏,但是如果充分利用 Pygame 中的模块,开发要容易得多。把游戏设计者从低级语言的束缚中解放出来,专注于游戏逻辑本身。使用 Python 可以导入Pygame 来开发具有全部特性的游戏和多媒体软件,Pygame 是极度轻便的,并且可以运行在多种平台和操作系统上。 
Pygame 在游戏开发中十分受欢迎,再加上其开源的特性,促使一大批游戏开发者为完善和加强它的功能而努力。
01
任务展示
疯狂僵尸游戏程序的运行效果如图 6-41 所示。
■ 图 6-41  疯狂僵尸的运行结果
02
任务实现
疯狂僵尸游戏的具体实现代码如下。

import
 pygame
#表示导入pygame模块
import
 sys
#表示导入sys模块
pygame.init()
#表示进行模块的初始化
size = width, height =
600
,
500#表示设置窗口像素变量
speed = [
-2
,
1
]
#表示设置速度变量
bg = (
255
,
255
,
255
)
#表示设置背景颜色变量
screen = pygame.display.set_mode(size)
#表示创建指定大小的窗口
pygame.display.set_caption(
"疯狂僵尸"
)
#表示设置窗口的标题
test= pygame.image.load(
"test.png"
)
#表示载入图片
position = test.get_rect()
#表示取得图片的位置矩形
whileTrue
:
#表示无限循环,直到接收到窗口关闭事件
for
 event
in
 pygame.event.get():
#表示获取事件队列
if
 event.type == pygame.QUIT:
#表示如果接收到的是窗口关闭事件
           sys.exit()
#表示退出循环
    position = position.move(speed)
#表示移动图像
if
 position.left <
0or
 position.right > width:
#表示图像到达窗口的左边界或者右边界
   test= pygame.transform.flip(test,
True
,
False
)
#表示水平方向翻转图像
   speed[
0
] = -speed[
0
]
#表示图像反方向移动
if
 position.top <
0or
 position.bottom > height:
#表示图像到达窗口的上边界或者下边界
  speed[
1
] = -speed[
1
]
#表示图像反方向移动
        screen.fill(bg)
#表示填充背景
        screen.blit(test, position)
#表示更新图像
        pygame.display.flip()
#表示更新窗口界面
        pygame.time.delay(
10
)
#表示时间延迟10毫秒
03
源代码下载
关注微信公众号,后台回复关键词 “疯狂僵尸” 即可获得完整源代码。
04
参考书籍
Python边做边学-微课视频版
ISBN:978-7-302-56793-6
陈秀玲 田荣明 冉涌 主编
定价:49.8元
内容简介
本书采用项目化教程的模式,以理论讲解与实战案例演练相结合的方式,以知识点为主线,将每个项目按照知识点拆解分为多个任务,每个任务均以充满趣味性的游戏入手,系统、全面、循序渐进地讲解Python知识点,使读者能够学以致用,融会贯通。全书共分为8个项目,分别是认识新朋友(Python)、开启编程之旅、高级编程之路、叩开面向对象编程之门、异常处理、Python图形界面设计、网络爬虫和使用Python操作数据库。本书的每个知识点都有相应的实现代码,并配有详细的注释说明,便于读者快速理解和掌握。
本书适合零基础的读者,也可作为高等院校的教材,还可供相关领域的广大科研人员、从事大数据分析、数据爬取或深度学习的专业人员等作为参考书使用。
05
精彩推荐
继续阅读
阅读原文