《Python和Pygame游戏开发指南》——2.11 颜色的透明度

简介:

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

2.11 颜色的透明度

当你通过一个带有红色色调的玻璃窗口看过去,其背后的所有颜色都会增加一个红色的阴影。你可以通过给颜色值添加第4个0~255的整数值来模仿这种效果。这个值叫作alpha值(alpha value)。这是表示一种颜色有多么不透明的一个度量值。通常,当你在一个Surface对象上绘制一个像素的时候,新的颜色完全替代了那里已经存在的任何颜色。但是,使用带有一个alpha值的颜色,可以只是给已经存在的颜色之上添加一个带有颜色的色调。

例如,表示绿色的3个整数值的一个元组是(0, 255, 0)。但是,如果添加了第4个整数作为alpha值,我们可以使其成为一个半透明的绿色(0, 255, 0, 128)。255的alpha值是完全不透明的(也就是说,根本没有透明度)。颜色(0, 255, 0)和(0, 255, 0, 255)看上去完全相同。alpha值为0,表示该颜色是完全透明的。如果将alpha值为0的任何一个颜色绘制到一个Surface对象上,它没有任何效果,因为这个颜色完全是透明的,且不可见。

为了使用透明颜色来进行绘制,必须使用convert_alpha()方法创建一个Surface对象。例如,如下代码创建了一个可以在其上绘制透明颜色的Surface对象。


screenshot

一旦在该Surface对象上绘制的内容存储到了anotherSurface中,随后another Surface可以“复制”(blit,也就是copy)到DISPLAYSURF中,以便它可以显示在屏幕上(参见本章稍后的2.19节)。在那些并非从一个convert_alpha()返回的Surface对象上,你不能够使用透明颜色,这也包括从pygame.display. set_mode()返回的显示Surface,注意这一点是很重要的。

如果我们创建了一个颜色元组来绘制著名的隐形粉红独角兽,应该会使用(255, 192, 192, 0),它最终看上去是完全不可见的,就像是alpha值为0的任何其他颜色一样。毕竟,它是隐形的。图2-5是绘制隐形粉红独角兽的屏幕截图。


screenshot

相关文章
|
1月前
|
存储 人工智能 运维
【01】做一个精美的打飞机小游戏,浅尝阿里云通义灵码python小游戏开发AI编程-之飞机大战小游戏上手实践-优雅草央千澈-用ai开发小游戏尝试-分享源代码和游戏包
【01】做一个精美的打飞机小游戏,浅尝阿里云通义灵码python小游戏开发AI编程-之飞机大战小游戏上手实践-优雅草央千澈-用ai开发小游戏尝试-分享源代码和游戏包
194 48
【01】做一个精美的打飞机小游戏,浅尝阿里云通义灵码python小游戏开发AI编程-之飞机大战小游戏上手实践-优雅草央千澈-用ai开发小游戏尝试-分享源代码和游戏包
|
1月前
|
人工智能 Python
【02】做一个精美的打飞机小游戏,python开发小游戏-鹰击长空—优雅草央千澈-持续更新-分享源代码和游戏包供游玩-记录完整开发过程-用做好的素材来完善鹰击长空1.0.1版本
【02】做一个精美的打飞机小游戏,python开发小游戏-鹰击长空—优雅草央千澈-持续更新-分享源代码和游戏包供游玩-记录完整开发过程-用做好的素材来完善鹰击长空1.0.1版本
54 7
|
3月前
|
前端开发 计算机视觉 Python
浅蓝色代表什么颜色?——Python中的颜色表示与处理
本文介绍了浅蓝色在计算机图形和Web开发中的表示方法,包括RGB、十六进制和HSL三种常见格式,并详细说明了如何使用Python的Pillow和colorsys库来处理和转换这种颜色,最后给出了生成浅蓝色背景的CSS代码示例。
177 6
|
26天前
|
测试技术 Python
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
101 31
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
|
22天前
|
Java 图形学 Python
用Python和Pygame打造绚丽烟花效果+节日祝福语
本文介绍了一款基于Python和Pygame库实现的烟花效果程序,模拟烟花发射、爆炸及粒子轨迹,结合动态文本显示祝福语,营造逼真的节日氛围。程序包括烟花类、粒子类、痕迹类和动态文本显示功能,通过随机化颜色、速度和粒子数量增加效果多样性。用户可以看到烟花从屏幕底部发射、上升并在空中爆炸,伴随粒子轨迹和动态祝福语“蛇年大吉”、“Happy Spring Festival”。文章详细解析了核心代码逻辑和技术要点,帮助读者理解如何利用Pygame库实现复杂视觉效果,并提供了未来改进方向,如优化性能、增加特效和增强交互性。
89 20
|
2月前
|
Python
课程设计项目之基于Python实现围棋游戏代码
游戏进去默认为九路玩法,当然也可以选择十三路或是十九路玩法 使用pycharam打开项目,pip安装模块并引用,然后运行即可, 代码每行都有详细的注释,可以做课程设计或者毕业设计项目参考
78 33
|
3月前
|
JSON 开发工具 git
基于Python和pygame的植物大战僵尸游戏设计源码
本项目是基于Python和pygame开发的植物大战僵尸游戏,包含125个文件,如PNG图像、Python源码等,提供丰富的游戏开发学习素材。游戏设计源码可从提供的链接下载。关键词:Python游戏开发、pygame、植物大战僵尸、源码分享。
|
4月前
|
IDE 开发工具 Python
Python扑克游戏编程---摸大点
Python扑克游戏编程---摸大点
85 1
|
4月前
|
Python
Python 游戏开发实战:从入门到精通
本文介绍利用Python与Pygame库进行游戏开发的基础知识。Pygame是专为游戏设计的Python库,提供了丰富的功能简化游戏开发流程。文中首先指导读者完成Pygame库的安装,并通过示例代码演示了游戏窗口创建、基本图形绘制及用户输入处理等核心概念。此外,还展示了如何通过定义类来组织游戏对象,帮助读者更高效地管理游戏代码。适合初学者入门Python游戏开发。
233 1
|
5月前
|
Python
python编写下象棋游戏|4-14
python编写下象棋游戏|4-14

热门文章

最新文章