手把手带你用Pygame打造游戏世界

目录

一、Pygame 初相识

二、准备启航:环境搭建

(一)安装 Python

(二)安装 Pygame

三、Hello, Pygame:第一个窗口

(一)代码实现

(二)代码剖析

四、绘制基础图形

(一)设置颜色

(二)绘制矩形

(三)绘制圆形

(四)更新屏幕

五、加载与显示图像

(一)准备图像素材

(二)加载图像

(三)显示图像

六、用户输入处理

(一)键盘输入

(二)鼠标输入

七、让元素动起来

(一)移动图像原理

(二)代码实现

八、为游戏添音

(一)初始化混音器

(二)加载与播放背景音乐

(三)加载与播放音效

九、碰撞检测

(一)原理介绍

(二)代码示例

十、动画与帧率控制

(一)帧率控制的重要性

(二)使用 pygame.time.Clock 控制帧率

(三)动画实现示例

十一、总结与展望


一、Pygame 初相识

在 Python 的游戏开发领域,Pygame 可谓是一颗璀璨的明星,它是一个开源的 Python 模块,专门为编写视频游戏而设计,自问世以来,便凭借其独特的魅力,在众多 Python 游戏开发库中脱颖而出,吸引了无数开发者的目光。

Pygame 支持跨平台开发,无论是 Windows、Linux 还是 macOS,都能完美适配,这使得开发者能够轻松地将自己的作品推广到不同的操作系统上。它还提供了丰富多样的功能,涵盖了图形绘制、声音处理、事件处理、时间管理、碰撞检测以及窗口管理等多个方面。有了这些功能的加持,开发者可以尽情发挥自己的创意,轻松构建出各种精彩纷呈的 2D 游戏,无论是经典的贪吃蛇、俄罗斯方块,还是充满冒险的平台跳跃游戏,又或是紧张刺激的射击游戏,Pygame 都能提供强大的技术支持。

不仅如此,Pygame 还非常适合初学者学习游戏开发,由于 Python 语言本身简洁易懂,再加上 Pygame 简单易用的 API 和丰富详尽的文档,使得即便是没有太多编程经验的小白,也能快速上手,开启自己的游戏开发之旅。而且,Pygame 拥有一个活跃的社区,开发者们可以在社区中分享自己的经验、交流心得,遇到问题时也能迅速获得帮助和支持。

想象一下,你可以用 Pygame 创造一个属于自己的游戏世界,在这个世界里,你可以自由地设定游戏规则,让角色按照你的想法行动,是不是感觉特别酷?接下来,就让我们一起揭开 Pygame 的神秘面纱,深入探索它的奇妙世界吧!

二、准备启航:环境搭建

(一)安装 Python

Python 作为 Pygame 的运行基础,其安装是我们踏上游戏开发之旅的第一步。首先,打开你的浏览器,访问 Python 的官方网站:https://www.python.org/downloads/ 。在这里,你会看到各种版本的 Python 供你选择,强烈推荐下载最新的 Python 3 版本,因为它不仅拥有更强大的功能和性能优化,还能获得更及时的安全更新和社区支持。

找到适合你操作系统的下载链接,如果你使用的是 Windows 系统,一般选择以 “Windows x86-64 executable installer” 结尾的文件,这是 64 位的安装程序,能充分利用现代计算机的硬件性能;如果你不确定自己的系统是 32 位还是 64 位,可以在 “此电脑” 上右键点击,选择 “属性”,在弹出的窗口中查看 “系统类型”。如果你使用的是 macOS 系统,直接点击 “macOS 64-bit installer” 进行下载即可。而对于 Linux 用户,大多数主流的 Linux 发行版都已经预装了 Python,但为了确保使用最新版本,你也可以通过包管理器进行更新或安装,例如在 Ubuntu 系统中,可以使用命令 “sudo apt-get install python3”。

下载完成后,双击安装文件开始安装。在安装过程中,有一个非常关键的步骤需要特别注意:务必勾选 “Add Python to PATH” 选项 ,这个选项的作用是将 Python 的安装路径添加到系统的环境变量中,这样以后在命令行中就可以直接使用 Python 命令,而无需输入冗长的路径。如果不小心忘记勾选了,后续也可以手动添加环境变量,不过过程会稍微繁琐一些。

接着,你可以选择安装路径。默认情况下,Python 会安装到系统盘(通常是 C 盘),如果你希望安装到其他磁盘,点击 “Customize installation” 进行自定义安装,选择一个你喜欢的路径,比如 “D:\Python310”(这里假设安装的是 Python 3.10 版本),尽量确保路径中不包含中文或空格,以免在后续使用中出现问题。

之后,保持默认勾选的组件即可,这些组件是 Python 运行和开发所必需的。点击 “Install” 按钮,耐心等待安装完成。安装完成后,会出现一个安装成功的界面,点击 “Close” 关闭安装程序。

为了验证 Python 是否安装成功,按下 “Win + R” 组合键,打开运行对话框,输入 “cmd” 并回车,打开命令提示符窗口。在窗口中输入 “python --version”,如果显示出你刚刚安装的 Python 版本号,比如 “Python 3.10.8”,则说明安装成功。你还可以直接输入 “python”,进入 Python 的交互式编程环境,在这里可以直接运行 Python 代码,体验 Python 的魅力,输入 “exit ()” 可以退出该环境。

(二)安装 Pygame

在 Python 安装成功后,就可以安装 Pygame 库了。Pygame 的安装非常简单,借助 Python 的包管理工具 pip 即可轻松完成。pip 是 Python 的标准包管理工具,它可以帮助我们方便地安装、升级和卸载各种 Python 库。

打开命令提示符窗口(如果是在 Windows 系统下,刚刚验证 Python 安装时已经打开了,可以直接使用),在命令提示符下输入 “pip install pygame” ,然后按下回车键。pip 会自动从 Python Package Index(PyPI),也就是 Python 的官方软件包存储库中下载 Pygame 的最新版本,并将其安装到你的 Python 环境中。安装过程中,你会看到命令行窗口不断输出下载和安装的进度信息。

不过,在安装过程中,可能会遇到一些问题。比如,由于网络原因,pip 无法连接到 PyPI,导致下载失败。这时,可以尝试使用国内的镜像源来加速下载,例如清华大学的镜像源,只需要将安装命令改为 “pip install pygame -i https://pypi.tuna.tsinghua.edu.cn/simple” ,其中 “-i” 参数表示指定镜像源地址。这样 pip 就会从清华大学的镜像源下载 Pygame,大大提高下载速度。

另外,如果你的 Python 版本过低,可能会导致 Pygame 无法安装或运行。Pygame 对 Python 版本有一定的要求,确保你的 Python 版本至少为 3.6 或更高 ,如果版本过低,建议先升级 Python 版本,再进行 Pygame 的安装。

还有一种情况是权限问题,在某些操作系统中,可能需要管理员权限才能安装新的软件包。如果在安装时遇到权限不足的错误提示,可以尝试在命令前加上 “sudo”(在 Linux 和 macOS 系统中),以提升权限,例如 “sudo pip install pygame” 。在 Windows 系统中,如果是在普通用户账户下安装失败,可以尝试以管理员身份运行命令提示符,方法是在开始菜单中找到 “命令提示符”,右键点击,选择 “以管理员身份运行”,然后再执行安装命令。

当安装完成后,可以通过以下命令验证 Pygame 是否正确安装:在命令行中输入 “python -m pygame.examples.aliens” ,如果 Pygame 安装成功,你会看到一个小型的游戏窗口弹出,里面展示了一个简单的外星人射击游戏示例,这说明 Pygame 已经成功安装到你的系统中,并且可以正常使用了。

三、Hello, Pygame:第一个窗口

(一)代码实现

现在,我们已经做好了所有准备工作,是时候迈出 Pygame 游戏开发的第一步 —— 创建一个属于自己的窗口。别小看这一步,它可是我们后续构建精彩游戏世界的基石。就像建造一座宏伟的城堡,这第一个窗口就是城堡的地基,有了它,才能在上面添砖加瓦,打造出绚丽多彩的游戏场景。

下面是实现这一目标的 Python 代码:

 

import pygame

import sys

# 初始化Pygame

pygame.init()

# 设置窗口大小

screen_width = 800

screen_height = 600

screen = pygame.display.set_mode((screen_width, screen_height))

# 设置窗口标题

pygame.display.set_caption("My First Pygame Window")

# 主循环

while True:

for event in pygame.event.get():

if event.type == pygame.QUIT:

pygame.quit()

sys.exit()

pygame.display.flip()

(二)代码剖析

让我们一行一行地剖析这段代码,看看它究竟是如何运作的。

  1. 导入模块
 

import pygame

import sys

这两行代码导入了我们游戏开发中必不可少的两个模块。pygame模块是我们构建游戏的核心工具,它提供了各种功能和函数,让我们能够轻松实现图形绘制、事件处理等操作;而sys模块则主要用于处理 Python 运行时的一些系统相关事务,在这里,我们会用它来实现程序的优雅退出。

2. 初始化 Pygame

 

pygame.init()

pygame.init()函数是 Pygame 的初始化入口,它会自动初始化 Pygame 的各个子模块,就像是为一场盛大的演出做好所有准备工作,确保舞台(各种功能模块)搭建完毕,演员(各种资源)就位,一切准备就绪,我们才能顺利开启游戏之旅。如果不调用这个函数,Pygame 的很多功能将无法正常使用,就好比一场没有准备好的演出,肯定会状况百出。

3. 设置窗口大小

 

screen_width = 800

screen_height = 600

screen = pygame.display.set_mode((screen_width, screen_height))

这里我们首先定义了两个变量screen_width和screen_height,分别表示窗口的宽度和高度,这里设置为 800 像素和 600 像素。然后,通过pygame.display.set_mode()函数创建了一个指定大小的窗口,这个函数返回的screen对象代表了我们创建的游戏窗口,它就像是一块画布,我们后续绘制的所有游戏元素都将呈现在这块画布上。

4. 设置窗口标题

 

pygame.display.set_caption("My First Pygame Window")

pygame.display.set_caption()函数用于设置窗口的标题,这里我们将标题设置为 “My First Pygame Window”,当窗口显示时,这个标题会出现在窗口的顶部栏,就像是给我们的游戏窗口贴上了一个独特的标签,让玩家一眼就能知道这个窗口的用途。

5. 主循环

 

while True:

for event in pygame.event.get():

if event.type == pygame.QUIT:

pygame.quit()

sys.exit()

pygame.display.flip()

这是整个程序的核心部分,一个无限循环,也被称为游戏的主循环。只要这个循环在运行,我们的游戏就处于活动状态。在这个循环中,我们使用pygame.event.get()函数获取所有发生的事件,这些事件可能包括用户的鼠标点击、键盘输入,以及窗口的关闭操作等。然后,通过一个for循环遍历这些事件,检查每个事件的类型。如果事件类型是pygame.QUIT,这意味着用户点击了窗口的关闭按钮,此时我们调用pygame.quit()函数反初始化 Pygame,清理所有 Pygame 相关的资源,就像是演出结束后清理舞台一样,然后使用sys.exit()函数退出程序,确保程序完全终止。

最后,pygame.display.flip()函数用于更新整个显示窗口的内容,将我们在程序中对窗口所做的所有更改(比如绘制图形、更新图像等)显示出来。它就像是一个神奇的画笔,将我们在幕后准备好的画面一次性展示给观众。如果不调用这个函数,我们对窗口的更改将无法在屏幕上显示,就好比我们在画布上画了一幅美丽的画,却没有展示给别人看,那这幅画的价值就无法体现出来。

四、绘制基础图形

当我们拥有了游戏窗口这块 “画布” 后,接下来就可以在上面大展身手,绘制各种基础图形,为游戏场景增添丰富的元素。绘制基础图形是 Pygame 游戏开发中至关重要的一环,它就像是搭建积木,通过一个个简单的图形,构建出一个丰富多彩的游戏世界。接下来,让我们一起学习如何在 Pygame 中绘制这些基础图形。

(一)设置颜色

在绘制图形之前,首先要确定图形的颜色。在 Pygame 中,使用 RGB(Red, Green, Blue)颜色模型来表示颜色 ,每个颜色分量的取值范围是 0 - 255。通过不同的 RGB 值组合,可以创造出 16777216 种不同的颜色,这足以满足我们在游戏开发中的各种需求。例如,(255, 0, 0) 表示鲜艳的红色,就像熟透的苹果;(0, 255, 0) 表示生机勃勃的绿色,仿佛春天的草地;(0, 0, 255) 表示深邃的蓝色,如同广阔的天空 。(255, 255, 255

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大雨淅淅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值