《Python和Pygame游戏开发指南》——2.3 建立一个Pygame程序

简介:

本节书摘来自异步社区《Python和Pygame游戏开发指南》一书中的第2章,第2.3节,作者[美]Al Sweigart(斯维加特), 李强 译,更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.3 建立一个Pygame程序

Hello World的前几行,几乎在你使用Pygame编写的每一个程序中都会用作开头的几行。


screenshot

第1行是一条简单的import语句,它导入pygame和sys模块,以便我们可以在程序中使用这些模块中的函数。Pygame所提供的所有那些处理图形、声音以及其他功能的Pygame函数,都位于pygame模块中。

当导入pygame模块的时候要注意,你也会自动地导入位于pygame模块之中的所有模块,如pygame.images和pygame.mixer.music。不需要再用其他的import语句来导入这些位于该模块之中的模块。


screenshot

第2行也是一条import语句。然而,它使用了from modulename import 的格式,而不是import modulename的格式。通常,如果你想要调用模块中的一个函数,必须在导入该模块之后,使用modulename.functionname()的格式。然而,通过使用from modulename import ,你可以省略掉modulename.部分,而直接使用functionname()来调用(就像是调用Python的内建函数一样)。

针对pygame.locals使用这种形式的import语句,是因为pygame.locals包含了几个常量变量,它们前面不需要pygame.locals,也可以很容易地识别出是pygame.locals模块中的变量。对于所有其他的模块,通常会使用常规的import modulename格式(http://invpy.com/namespaces 更为详细地介绍我们想要这么做的原因)。


screenshot

第4行是pygame.init()函数调用,在导入了pygame之后并且在调用任何其他的Pygame函数之前,总是需要调用该函数。现在不需要知道这个函数到底做些什么,只需要知道,要让众多的Pygame函数能够工作,我们需要先调用这个函数。如果你看到诸如pygame.error: font not initialized的一个错误,检查看看是否在程序的开始处忘记调用pygame.init()了。


screenshot

第5行调用了pygame.display.set_mode()函数,它返回了用于该窗口的pygame. Surface对象(本章后面将会介绍Surface对象)。注意,我们给该函数传入了两个整数的一个元组值:(400, 300)。这个元组告诉set_mode()函数创建一个宽度和高度分别为多少个像素的窗口。(400, 300)将会创建一个宽400像素、高300像素的窗口。

记住给set_mode()传递两个整数的一个元组,而不是两个整数自身。调用该函数的正确方式是这样的: pygame.display.set_mode((400, 300))。诸如pygame.display. set_mode (400, 300)的一个函数调用,将会导致TypeError: argument 1 must be 2-item sequence, not int这样的一个错误。

返回的pygame.Surface对象(为了简便起见,我们将其称为Surface对象),存储在一个名为DISPLAYSURF的变量中。


screenshot

第6行通过调用pygame.display.set_caption()函数,设置了将要在窗口的顶部显示的标题文本。在这个函数调用中,传入了字符串值'Hello World!',以使得该文本作为标题出现,如图2-2所示。


screenshot

相关文章
|
1月前
|
IDE 开发工具 Python
Python扑克游戏编程---摸大点
Python扑克游戏编程---摸大点
|
2月前
|
Python
python编写下象棋游戏|4-14
python编写下象棋游戏|4-14
|
2月前
|
人工智能 算法 图形学
总有一个是你想要的分享40个Python游戏源代码
这是一系列基于Python开发的游戏项目集合,包括中国象棋、麻将、足球、坦克大战、扑克等多种类型游戏,运用了Pygame等库实现图形界面与AI算法。此外还包含迷宫、数独、推箱子等益智游戏及经典游戏如《仙剑奇侠传二战棋版》和《星露谷物语》的Python版本,适合编程学习与娱乐。
87 11
|
1月前
|
数据采集 前端开发 Python
Python pygame 实现游戏 彩色 五子棋 详细注释 附源码 单机版
Python pygame 实现游戏 彩色 五子棋 详细注释 附源码 单机版
62 0
|
2月前
|
消息中间件 数据采集 数据库
庆祝吧!Python IPC让进程间的合作,比团队游戏还默契
【9月更文挑战第7天】在这个数字化时代,软件系统日益复杂,单进程已难以高效处理海量数据。Python IPC(进程间通信)技术应运而生,使多进程协作如同训练有素的电竞战队般默契。通过`multiprocessing`模块中的Pipe等功能,进程间可以直接传递数据,无需依赖低效的文件共享或数据库读写。此外,Python IPC还提供了消息队列、共享内存和套接字等多种机制,适用于不同场景,使进程间的合作更加高效、精准。这一技术革新让开发者能轻松应对复杂挑战,构建更健壮的软件系统。
34 1
|
3月前
|
机器学习/深度学习 存储 定位技术
强化学习Agent系列(一)——PyGame游戏编程,Python 贪吃蛇制作实战教学
本文是关于使用Pygame库开发Python贪吃蛇游戏的实战教学,介绍了Pygame的基本使用、窗口初始化、事件处理、键盘控制移动、以及实现游戏逻辑和对象交互的方法。
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
【机器学习】python之人工智能应用篇--游戏生成技术
游戏生成技术,特别是生成式人工智能(Generative Artificial Intelligence, 简称Generative AI),正逐步革新游戏开发的多个层面,从内容创作到体验设计。这些技术主要利用机器学习、深度学习以及程序化内容生成(Procedural Content Generation, PCG)来自动创造游戏内的各种元素,显著提高了开发效率、丰富了游戏内容并增强了玩家体验。以下是生成式AI在游戏开发中的几个关键应用场景概述
51 2
|
3月前
|
算法 Python
【python】python基于 Q-learning 算法的迷宫游戏(源码+论文)【独一无二】
【python】python基于 Q-learning 算法的迷宫游戏(源码+论文)【独一无二】
|
3月前
|
机器学习/深度学习 存储 算法
【Python】 基于Q-learning 强化学习的贪吃蛇游戏(源码+论文)【独一无二】
【Python】 基于Q-learning 强化学习的贪吃蛇游戏(源码+论文)【独一无二】
130 0
|
3月前
|
定位技术 Python
【python】python基于pygame坦克大战游戏设计(源码+图像+操作说明)【独一无二】
【python】python基于pygame坦克大战游戏设计(源码+图像+操作说明)【独一无二】

热门文章

最新文章