【发布时间】:2015-02-26 05:49:08
【问题描述】:
问题很简单。我想在 Python 中更改我的 SDL2 渲染器的 Blendmode,但我不知道如何访问渲染器。
PySDL2 Documentation here 声明您可以使用 Alpha 通道定义颜色:
类 sdl2.ext.Renderer
blendmode:用于绘图的混合模式 操作(填充和线条)。这可以是
。 SDL_BLENDMODE_NONE 表示不混合
。 SDL_BLENDMODE_BLEND 用于 Alpha 混合
。 SDL_BLENDMODE_ADD 用于加色混合
。 SDL_BLENDMODE_MOD 用于多重颜色混合
我只需将 Blendmode 设置为 SDL_BLENDMODE_BLEND 以便我可以使用 Alpha 通道。我的问题是我正在使用 SoftwareSpriteRenderSystem
self.Renderer = self.SpriteFactory.create_sprite_render_system(self.Window)
这里没有任何明确的方法可以更改混合模式。我可以尝试执行以下操作:
SDL_SetRenderDrawBlendMode(self.Renderer,SDL_BLENDMODE_BLEND)
但这会返回:
ArgumentError: argument 1: <type 'exceptions.TypeError'>: expected LP_SDL_Renderer instance instead of SoftwareSpriteRenderSystem
有人可以帮帮我吗?我只是希望能够获得一些透明的 Sprites(from_rect sprites),但事实证明这很困难,因为 SDL_renderer 无法访问。
【问题讨论】:
-
您的问题含糊不清。您想要包含 Alpha 通道的精灵还是想要混合基本的绘制和填充操作?
-
@Marcus 我想要包含 Alpha 通道的精灵。我使用 'from_color' 来创建我的基本形状(不是 from_rect 我不好),所以无论你为精灵设置透明度是我所需要的。
标签: python sdl-2 renderer pysdl2