【发布时间】:2020-03-28 11:57:55
【问题描述】:
我有一个透明背景的 PNG 文件。 Snippet of transparent background
我将其设置为 surface 然后设置为 tex :
SDL_Texture* m_Tex = SDL_CreateTextureFromSurface(renderer, surface);
我希望这个纹理具有闪烁效果,所以我将它传递给 setTextureBlendMode 函数
SDL_SetTextureBlendMode(tex, SDL_BLENDMODE_BLEND);
Uint8 m_Alpha = 255;
我将使用 m_Alpha 来达到闪烁的目的。我将通过按下特定按钮来激活闪烁。 它工作正常。但是为什么我把它转回SDL_BLENDMODE_NONE后纹理的背景不再透明了:
SDL_SetTextureBlendMode(tex, SDL_BLENDMODE_NONE);
Snippet of not transparent anymore after BLENDMODE_NONE
有没有办法让我的纹理背景再次透明? 我的意思是,经过足够的研究,除了 SDL_SetColorKey 之外,我似乎找不到其他方法。 但是 SDL_SetColorKey 再次需要加载的表面。这只是意味着我将在 surface 上再次设置 PNG 文件,然后在 tex 上设置。我认为每次我希望 tex 停止闪烁时都这样做并不理想。请帮忙。谢谢。
【问题讨论】: