首页 > 其他分享 >Pygame - Special Flags 文档翻译

Pygame - Special Flags 文档翻译

时间:2024-04-17 21:23:06浏览次数:26  
标签:Surface RGB Flags Pygame alpha 通道 BLEND Special pygame

Pygame Special Flags

官方文档链接


什么是 Special Flags?

Special Flags是一种控制如何将一个 Surface绘制到另一个Surface的方法。它们可以用来创造视觉效果,如发光粒子,或执行表面掩蔽或操作。它们的使用方法如下:

​ 具体来说,它们是通过pygame.BLEND_*作为这些方法的special_flags参数传递的。这允许您选择如何将两个Surface颜色组合或混合在一起。不同的Special Flags可能产生非常不同的结果,因此通过实验了解它们的工作原理非常重要。

​ 默认情况下,表面绘制时没有任何特殊标志,这意味着它们将基于其位深度(depth)和色键(colorykey)绘制:

  • 如果Surface有一个色键(colorkey),匹配色键(colorkey)的像素将是透明的。
  • 如果Surface有逐像素或全局alpha值,alpha值将用于将像素与下面的Surface混合。
  • 如果Surface没有色键(colorkey)或alpha值,像素将是不透明的,这意味着Surface将有效地覆盖下面Surface的像素。

默认的绘图模式的标志是:BLENDMODE_NONE(0)。


Special Flags 列表

无Alpha通道混合(RGB)


pygame 1.8: / 1.8.1新增功能

  • BLEND_ADD / BLEND_RGB_ADD

    将源颜色通道添加到目标颜色通道,最大限制为255。结果颜色总是浅色的。

  • BLEND_SUB / BLEND_RGB_SUB

    从目标颜色通道中减去源颜色通道,最小值为0。结果颜色总是较深。

  • BLEND_MULT / BLEND_RGB_MULT

    目标颜色通道乘以源颜色通道,除以256(或>> 8)。结果颜色总是较深的颜色。

  • BLEND_MIN / BLEND_RGB_MIN

    取源和目标颜色通道之间的最小值。

  • BLEND_MAX / BLEND_RGB_MAX

    取每个颜色通道的最大值

与Alpha通道(RGBA)混合


pygame 1.8.1新增功能:

  • BLEND_RGBA_ADD

    像BLEND_RGB_ADD一样工作,但也增加了alpha通道。

  • BLEND_RGBA_SUB

    像BLEND_RGB_SUB一样工作,但也减去alpha通道。

  • BLEND_RGBA_MULT

    像BLEND_RGB_MULT一样工作,但也会增加alpha通道。

  • BLEND_RGBA_MIN

    像BLEND_RGB_MIN一样工作,但也最小化了alpha通道。

  • BLEND_RGBA_MAX

    像BLEND_RGB_MAX一样工作,但最大化了alpha通道。

特殊Alpha混合(RGBA)


New in pygame 1.9.2: pygame 1.9.2新增功能:

  • BLEND_PREMULTIPLIED

    当颜色通道已经乘以表面alpha通道时,使用预乘法alpha混合稍微快一点的位元和更准确的混合结果。只有当你使用过pygame.Surface.premul_alpha()预乘表面时,你才应该使用这种混合模式,pygame.Surface.premul_alpha()返回一个带有RGB通道预乘alpha通道的表面副本。或者如果你知道Surface已经创建或加载了预相乘的alpha颜色。你可以在这里阅读更多关于预乘法alpha混合的优点。

pygame 2.0.0新增功能:

  • BLEND_ALPHA_SDL2

    使用SDL2 blitter进行alpha混合,与Pygame 1中使用的默认blitter相比,这可能会产生略有不同的结果。该算法使用不同的近似进行阿尔法混合,并支持在阿尔法混合表面上运行长度编码(RLE)。

其他(RGB / RGBA)


  • BLENDMODE_NONE

    这是默认的绘图模式。这相当于不传递任何特殊标志。

translate on 2024.4.17

标签:Surface,RGB,Flags,Pygame,alpha,通道,BLEND,Special,pygame
From: https://www.cnblogs.com/koji233/p/18141797

相关文章

  • Go - go build -ldflags
     #downloaddependenciesandbuildRUNgomoddownloadRUNCGO_ENABLED=0GOOS=$TARGETOSGOARCH=$TARGETARCHgobuild-ldflags="-s-w"-o/go/bin/server zzh@ZZHPC:~/aaa$gobuild-ldflags="-help"./main.go#command-line-arguments......
  • EditorGUI.EnumFlagsField实现多选枚举
    效果枚举publicenumMyFontStyleMask{Bold=1,Italic=1<<1,Outline=1<<2,}标签类usingUnityEngine;publicclassMyEnumMaskAttribute:PropertyAttribute{}Property Drawer#ifUNITY_EDITORusingSystem;usingUnityEd......
  • 52 Things: Number 25: Methods for modular reduction using "special" primes that
    52Things:Number25:Methodsformodularreductionusing"special"primesthatdefine GF(p) and GF(2n)52件事:第25件:使用定义 GF(p) 和#1的“特殊”素数进行模归约的方法# Thisisthelatestinaseriesofblogpoststoaddressthelistof '52ThingsEver......
  • htmlentities和htmlspecialchars 的区别有哪些
    htmlspecialchars只转化下面这几个html代码,而htmlentities却会转化所有的html代码,连同里面的它无法识别的中文字符也给转化了。'&'(ampersand)becomes'&amp;''"'(doublequote)becomes'"'whenENT_NOQUOTESisnotset.''......
  • 安装Pygame过程中提示错误WARNING: Retrying…ERROR: Exception: Traceback…WARNING:
    安装Pygame过程中提示错误WARNING:Retrying…ERROR:Exception:Traceback…WARNING:Youareusingpipversion解决方案前言Pygame错误错误分析解决方案错误分析结论更新pip安装Pygame前言输入Pygame安装命令pipinstallpygame安装Pygame出错提......
  • pygame制作贪吃蛇
    目录综述制作前的分析面向对象和面向过程对象相关(地图,蛇,食物)地图和墙体的绘制蛇的绘制食物的绘制总结代码游戏的基础(gamebase.py)引用一些基础参数的设置颜色点类(方块元素)文本类游戏主体(snake.py)引用基础参数(其实可以加到gamebase里)一些函数食物生成画图......
  • 一个pygame小练习
    如果不想看过程,可直接跳到结尾有完整代码游戏截图:第一部分代码#最开始的方框矩形代码importpygamepygame.init()win=pygame.display.set_mode((500,500))pygame.display.set_caption("FirstGame")x=50y=50width=40height=60vel=5isJump=False......
  • 使用Pygame做一个乒乓球游戏
    项目介绍使用Pygame做一个乒乓球游戏。左侧为电脑,右侧为玩家。视频地址-YT视频搬运-B站视频教程约90分钟。代码地址环境:需要pygame库,可用pip安装:pipinstallpygame1.基础版本首先进行一些初始化,初始化pygame以及物体的初始状态。然后是主循环,游戏的主循环主要......
  • python27安装pygame
    参考:https://cloud.tencent.com/developer/article/2089701我安装的是1.9.3版本https://pypi.org/project/pygame/1.9.3/#files按照自己本地的环境下载,比如我的是python27,windows64,我安装的就是 pygame-1.9.3-cp27-cp27m-win_amd64.whl安装命令:pipinstallxxxx.whl 试......
  • python/pygame坦克游戏边学边写笔记(六)
    一、给玩家坦克一个脆弱的家测试玩了一下,才发现玩家的家还没安排。1、载入家的图片。2、地图字典索引,生命值设为1,生命脆弱哦。3、wall_map方法中设定家的位置。ifdata.iloc[row,colum]=='家':wall_type='home'......