持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第20天,点击查看活动详情
pygame 使用图像
图像是大多数游戏的重要组成部分。显示器通常由存储在硬盘驱动器(或 CD、DVD 或其他媒体设备)上的图像集合组装而成。在2D游戏中,图像可能代表背景,文本,玩家角色或人工智能(AI)对手。在 3D 游戏中,图像通常用作创建 3D 场景的纹理。
计算机将图像存储为颜色网格。这些颜色的存储方式因重现图像所需的颜色数量而异。照片需要完整的颜色范围,但图表或黑白图像的存储方式可能不同。某些图像还存储每个像素的额外信息。除了通常的红色,绿色和蓝色成分外,可能还有一个alpha成分。颜色的 alpha 值最常用于表示半透明性,以便在另一个图像的顶部绘制时,部分背景可以显示出来。我们在“你好世界 Redux”中使用了一个带有 Alpha 通道的图像(清单 3-1)。如果没有 Alpha 通道,鱼的图像将被绘制在一个丑陋的矩形内。
使用 Alpha 通道创建图像
如果您使用数码相机拍摄了照片或使用某些图形软件绘制了照片,则它可能没有alpha通道。向图像添加 Alpha 通道
通常涉及图形软件的一些工作。为了将阿尔法通道添加到鱼的图像中,我使用了Photoshop,但您也可以使用其他软件,例如GIMP组织执行此操作。有关 GIMP 的介绍,请参阅阿卡纳·派克的《开始 GIMP:从新手到专业人士》(Apress,2006 年)。
向现有图像添加 Alpha 通道的替代方法是使用 3D 渲染包(如 Autodesk 的 3ds Max 或免费替代项 Blender创建图像。使用这种软件,您可以直接输出具有不可见背景的图像(您还可以从不同角度创建多个动画或视图帧)。这可能会为外观光滑的游戏带来最佳效果,但您可以使用手动 Alpha 通道技术做很多事情。尝试拍摄您的猫,狗或金鱼的照片,并用它制作游戏!
存储图像
有多种方法可以将映像存储在硬盘驱动器上。多年来,已经开发了许多图像文件格式,每种格式都有优点和缺点。幸运的是,少数几个已经成为最有用的,特别是两个:JPEG和PNG。两者在图像编辑软件中都得到了很好的支持,您可能不必使用其他格式在游戏中存储图像。
JPEG(联合图像专家组)-JPEG图像文件通常具有扩展名jpg或有时。.jpeg。如果您使用数码相机,它生成的文件可能是JPEG,因为它们是专门为存储照片而设计的。它们使用称为有损压缩的过程,该过程非常擅长缩小文件大小。有损压缩的缺点是它可以降低图像的质量,但通常它是如此微妙,以至于您不会注意到差异。还可以调整压缩量,以在视觉质量和压缩之间进行折衷。它们可能非常适合照片,但JPEG对于具有硬边缘的任何内容(例如字体或图表)都不好,因为有损压缩往往会扭曲这些类型的图像。如果您有任何此类图像,PNG可能是更好的选择。
PNG(便携式网络图形)-PNG文件可能是最通用的图像格式,因为它们可以存储各种图像类型并且仍然可以很好地压缩。它们还支持alpha通道,这对游戏开发人员来说是一个真正的福音。PNG使用的压缩是无损的,这意味着存储为PNG文件的图像将与原始文件完全相同。缺点是
即使具有良好的压缩效果,它们也可能比JPEG大。除了 JPEG 和 PNG 之外,派伽还支持读取以下格式:
根据经验,仅对具有大量颜色变化的大型图像使用JPEG;否则,请使用 PNG。