Python Pygame 游戏开发基础教程与项目实践
文章平均质量分 82
Python Pygame 游戏开发基础教程与项目实践,包括 Pygame 基础学习教程,以及小游戏练手项目,具体可看置顶的「总目录」篇。Pygame 是一个免费开源的跨平台库,用于使用 Python 开发视频游戏等多媒体应用程序。
优惠券已抵扣
余额抵扣
还需支付
¥15.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
谢TS
持续写了十几年代码,未来也将继续不停写代码的老程序员,后端工程师。
展开
-
Python Pygame 游戏开发基础教程与项目实践(总目录)
Python Pygame 游戏开发基础与实践(总目录)。Pygame 是一个免费的开源的跨平台库(支持 Windows、MacOS、Linux),用于使用 Python 开发视频游戏等多媒体应用程序。原创 2023-06-24 23:38:56 · 1961 阅读 · 2 评论 -
Python (Pygame) 游戏开发项目实战: 飞扬的小鸟 (Flappy Bird, 像素鸟)
使用 Python Pygame 开发一个 Flappy Bird 小游戏,也叫 飞扬的小鸟、像素鸟。Flappy Bird 是一款简单而富有挑战性的益智休闲游戏。玩家只需要点击屏幕即可操作。点击一下屏幕,小鸟就会往上飞一点,受到重力作用,又会不停往下掉。所以玩家要控制小鸟一直向前飞行,并注意躲避途中高低不平的水管,每飞过一对水管,就增加得分。飞行过程中如果撞到水管或掉落在地板上则游戏结束。原创 2023-07-18 18:15:47 · 1206 阅读 · 0 评论 -
Python (Pygame) 游戏开发项目实战: 2048 小游戏
使用 Python Pygame 开发一个经典的 2048 小游戏。代码一共 900 多行,所有代码都写在一个 py 文件中,功能和逻辑完整,并且没有依赖任何其他第三方库和资源,只用到了 pygame 模块中自带的资源,代码可以直接运行。原创 2023-07-13 19:19:14 · 582 阅读 · 0 评论 -
Python (Pygame) 游戏开发项目实战: 井字棋 AI 人机对战
使用 Python Pygame 开发一个 AI 人机对战 的井字棋游戏。井字棋,英文名叫 Tic-Tac-Toe,是一种在 3x3 格子上进行的连珠游戏,和五子棋类似,由于棋盘一般不画边框,格线排成井字而得名。井字棋游戏需要有两个参与者,分别画 O 和 X 表示棋子,任意 横向、纵线 或 对角线 中的三个相同棋子连城一线,则为获胜。原创 2023-07-11 20:23:56 · 810 阅读 · 0 评论 -
Pygame 基础教程14: 用 PyInstaller 把 Python 项目(包括资源文件)打包为双击运行的 exe 或 app 可执行文件
为了方便 Python 程序打包发布,可以使用第三方工具把 Python 代码、Python 解释器、第三方模块 一起打包到一个文件/文件夹,或直接打包成一个直接双击可运行的可执行文件,如 Windows 系统的 exe 文件、MacOS 系统的 app 软件包。PyInstaller 是一个跨平台的 Python 项目打包工具,可以将 Python 应用程序及其所有依赖项捆绑到一个包中。用户无需安装 Python 解释器和任何模块即可运行打包好的应用程序。原创 2023-06-26 13:59:45 · 747 阅读 · 0 评论 -
Pygame 基础教程13: 使用 精灵(Sprite) 实现 按钮、开关按钮 和 复选框
Pygame 中并没有按钮、开关按钮、复选框 等基础交互组件,但实际游戏开发中又经常用到。例如用于点击按钮开始游戏的「开始按钮」,用于开启/关闭背景音乐的「开关按钮」或「复选框」。这节中将使用 精灵(Sprite) 来实现这些组件。原创 2023-06-26 13:41:37 · 1843 阅读 · 0 评论 -
Pygame 基础教程12: 使用 精灵(Sprite) 实现 帧动画(Animation)
精灵(Sprite) 表示游戏画面中基本的显示元素,前面所介绍的精灵虽然位置可以动态移动,但都是一张静态图片。游戏中还有许多动态的动画精灵,如一只飞翔的小鸟,即使位置不变,小鸟的翅膀也会煽动。动画是通过一帧一帧图片的轮流显示实现的,也称为帧动画。Pygame 并没有直接支持动画的模块,可以使用 精灵(Sprite) 实现一个 动画精灵(Animation)。原创 2023-06-26 13:23:54 · 1449 阅读 · 0 评论 -
Pygame 基础教程11: 精灵(Sprite)、精灵组(Group)、碰撞检测
一个游戏画面由许许多多的图片元素组成,每张图片都有一个位置参数,而精灵就是用来封装图片和位置等属性用的。精灵(Sprite) 是组成游戏画面的基本显示元素。游戏画面中的 背景图片、开始/暂停按钮、时间/分数显示标签、游戏人物、游戏怪物、人物发出的子弹 等,都可以看做是一个个精灵对象。精灵对象至少有两个属性,就是 精灵呈现的图像(image) 和 精灵当前的位置区域(rect)。当然也可以根据需要添加其他属性,如 缩放比例、旋转角度、缩放和旋转的中心点、透明度等。原创 2023-06-26 11:31:22 · 1295 阅读 · 0 评论 -
Pygame 基础教程10: 时间控制(time) 与 帧速率(Clock)
Pygame 中的时间以毫秒(1/1000秒)表示。大多数平台的时间分辨率有限,约为 10 毫秒。时间分辨率以毫秒为单位,pygame.TIMER_RESOLUTION 给出了当前平台的时间分辨率。pygame.time.Clock 表示一个时钟,用于控制游戏循环的帧速率。每一次更新屏幕绘制(每一次游戏主循环)称为一帧,一秒钟内更新屏幕的次数(游戏主循环的次数)称为 帧速率(frame rate) 或 刷新速率(refresh rate),开发中一般写作 FPS (frames per second)。原创 2023-06-25 20:12:53 · 716 阅读 · 0 评论 -
Pygame 基础教程09: 图像变换(transform):拉伸/缩放、旋转 和 翻转图像
pygame.transform 模块用于对 图像Surface 做变形处理,如 拉伸/缩放、旋转 和 翻转图像。模块中所有变换函数都是对 Surface 进行操作,并返回一个包含变形结果的新 Surface(不会改变原图像)。原创 2023-06-25 20:06:04 · 1096 阅读 · 0 评论 -
Pygame 基础教程08: 音效(mixer.Sound) 和 背景音乐(mixer_music)
音效是游戏中短暂播放的一种声音,例如 跳跃音效、碰撞音效。游戏中一般可以同时播放多个音效,例如跳跃的同时碰撞了。游戏背景音乐和音效不同,音效是短暂的,可以多个音效一起播放。但全局同时只能播放一个背景音乐。pygame.mixer_music 模块用于控制背景音乐的播放。该模块导出到了 pygame。pygame.mixer 模块(混音器模块)包含了加载音频文件和播放控制的类。pygame.mixer 模块是可选的,依赖于 SDL_mixer。使用 pygame.mixer 模块之前,必须先手动初始化。原创 2023-06-25 19:58:23 · 1024 阅读 · 0 评论 -
Pygame 基础教程07: 绘制几何图形(draw/gfxdraw):线段、矩形、多边形、椭圆、圆弧
pygame.draw 模块用于在一个 图像(Surface) 上绘制简单的几何图形。目前 draw 绘图模块支持绘制 线段、矩形、多边形、椭圆 和 椭圆弧。pygame.draw 模块的所有绘图函数,都只在指定的 图像(Surface) 内绘图,超出部分自动忽略。这些绘图函数都返回一个 矩形区域(Rect) 表示本次绘图已更改像素的边界区域,此边界矩形是包围受影响区域的“最小”边界框。原创 2023-06-25 19:52:09 · 459 阅读 · 0 评论 -
Pygame 基础教程06: 字体模块(font) 与 文本绘制
pygame.font 模块用于加载和渲染字体。字体模块允许将 TrueType 字体渲染到 Surface 对象中。该模块建立在 SDL_ttf 库之上。大多数使用字体完成的工作都是通过使用实际的 pygame.font.Font 对象完成的。要绘制字体,就必须先有一个字体文件。可以使用 pygame.font.get_fonts() 函数获取当前系统所支持的字体。原创 2023-06-25 19:43:28 · 333 阅读 · 0 评论 -
Pygame 基础教程05: 图片处理(image):加载图片、绘制图片、保存图片
pygame.image 模块用于把 本地图片文件 或 Python文件对象 加载为 Surface,也支持把 Surface 保存到 本地图片 或 文件对象。原创 2023-06-25 19:03:32 · 949 阅读 · 0 评论 -
Pygame 基础教程04: 事件处理(event):键盘事件、鼠标事件、窗口事件
pygame.event 模块用于 Pygame 的事件处理。用户的 键盘按键按下/弹起、鼠标的点击/滚动/拖动、窗口大小调整、关闭窗口、窗口获得/失去焦点、退出游戏等,都是一序列的事件消息。Pygame 通过 事件队列 的方式处理事件消息。当有事件发生时,把事件消息封装为 事件对象(pygame.event.Event) 放到事件队列中。原创 2023-06-25 18:53:25 · 1137 阅读 · 0 评论 -
Pygame 基础教程03: 颜色(Color) 与 矩形区域(Rect)
pygame.color 模块用于颜色值的表示,主要包含了一个 Color 类型,并且已导出到 pygame 模块中,可以直接使用 pygame.Color。pygame.rect 模块用于矩形区域的表示,主要包含了一个 Rect 类型,并且已导出到 pygame 模块中,可以直接使用 pygame.Rect。一个 矩形区域Rect 用于描述 坐标位置+宽高尺寸,包括了 矩形左上角坐标点位置(left, top) 和 矩形的宽高(width, height)。原创 2023-06-25 17:57:01 · 525 阅读 · 0 评论 -
Pygame 基础教程02: 显示窗口(display) 与 图像(Surface)
pygame.display 模块提供了对 pygame 显示的控制。可以把 pygame.display 看做是包含了一个 系统窗口 的 显示器屏幕。原创 2023-06-25 17:50:42 · 3029 阅读 · 0 评论 -
Pygame 基础教程01: Python (Pygame) 游戏开发模块简介与安装
Pygame 是一个免费的开源的跨平台库(支持 Windows、MacOS、Linux),用于使用 Python 开发视频游戏等多媒体应用程序。它使用 SDL(Simple DirectMedia Layer)库 和 其他几个流行的库 一起来抽象出最常见功能的 Python API,使编写这些程序变的简单直观。Pygame 是 Python 的第三方模块,学习 Pygame 必须要有一定的 Python 语言基础。Pygame 是一个强大的游戏开发库,提供了广泛的功能来简化您的编码之旅。原创 2023-06-25 17:29:46 · 1448 阅读 · 0 评论