鱼C论坛

 找回密码
 立即注册
查看: 26|回复: 1

[技术交流] (Pygame)一种很新的表示颜色的方法

[复制链接]
发表于 昨天 22:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
rt.

众所周知,pygame允许这样表示颜色:

(0, 0, 0) -------- BLACK
(255, 0, 0) ----- RED
(0, 0, 255) ----- BLUE

也许你知道也可以直接这样:
'black'
'red'
'blue'

也许你又知道还能这样:(注意!!!不能用'#000'之类的表示)
'#000000' ----- BLACK
'#ff8000' ------ ORANGE
'#ffc0c0' ------- PINK
'#ffffff' -------- WHITE

更冷门的:
0x000000 (0) ------------ BLACK
0x808080 ---------------- GRAY
0xc0c0c0 ----------------- LIGHT GRAY
0x00c0c0 (0xc0c0) ----- DRAK CYAN

但你绝对不知道:(仅用于 convert_alpha() ed 的 Surface)*ed:表示过去式

0x00000000 (0) --------------- TRANSPARENT
0x000000ff (0xff) ------------- BLACK
0x00800080 (0x800080) ----- HALF TRANSPARENT GREEN
0x40404040 -------------------- 透明度 1/4 的深灰色(透明度为 1 表示不透明,透明度为 0 表示完全透明)
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 昨天 22:32 | 显示全部楼层
在Pygame中,对于经过 convert_alpha() 处理的 Surface,颜色可以使用32位十六进制整数表示,格式为 0xRRGGBBAA。其中 RR、GG、BB 分别代表红、绿、蓝分量(各8位,范围00-FF),AA 代表 Alpha 透明度分量(00 表示完全透明,FF 表示不透明)。这种表示法特别适用于带有 Alpha 通道的 Surface。

例如:
  1. 0x00000000  # 完全透明(Alpha=0)
  2. 0x000000ff  # 不透明黑色(RGB=0, Alpha=255)
  3. 0x00800080  # 半透明绿色(RGB=0,128,0, Alpha=128)
  4. 0x40404040  # 透明度1/4的深灰色(RGB=64,64,64, Alpha=64)
复制代码


注意:此方法仅适用于支持 Alpha 通道的 Surface(通常由 convert_alpha() 创建),常用于像素级操作如 Surface.set_at()Surface.get_at()。对于常规颜色设置,使用 RGBA 元组(如 (0,0,0,255))更为常见。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-3-8 03:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表