C语言 SDL2纹理渲染目标没有Alpha透明度[已关闭]

ecbunoof  于 2023-03-22  发布在  其他
关注(0)|答案(1)|浏览(154)

**已关闭。**此问题需要debugging details。当前不接受答案。

编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
昨天关门了。
Improve this question
我在使用SDL2进行C编程时遇到了一个问题。我将中心透明的简单正方形图像渲染到纹理中。但是当我绘制渲染它们的纹理时,它们不是透明的。我甚至尝试使用SDL_SetTextureAlphaMod更改渲染纹理的透明度()但它并没有改变任何东西。如果我改变正在渲染的纹理(正方形)上的alpha。它们会变暗,但仍然会覆盖它们后面的任何东西。所以我愿意接受建议。
这是一张我降低了方形纹理的alpha的图片:http://imgur.com/W8dNbBY

djp7away

djp7away1#

如果您想要透明图像,SDL2中有两种方法:
1.(静态法)
使用图像编辑软件,直接改变那里的alpha值,它将继续到SDL2。
1.(动态方法)

// This sets the texture in blendmode.
SDL_SetTextureBlendMode(texture, SDL_BLENDMODE_BLEND);

// This section should be where you alter the alpha. 
// You can make fade in-fade out effects, etc... Just put the changes here.
Uint8 alpha = 0x7F; 

// Sets the alpha into the texture.
SDL_SetTextureAlphaMod(texture, alpha); 

// Redraws the image with a fresh, new alpha.
SDL_RenderCopy(renderer, texture, NULL, &rect);

相关问题