使用SDL2在C上编程时遇到了问题。我已经渲染了一个纹理简单的正方形图像,在中心是透明的。但是当我绘制渲染它们的纹理时,它们不是透视的。我甚至尝试用SDL_SetTextureAlphaMod()改变渲染纹理的透明度,但它并没有改变任何东西。如果我更改正在渲染的纹理上的alpha(正方形)。他们变得更暗,但他们仍然覆盖他们背后的任何东西。所以我愿意接受建议。
这是我在方块textueres上降低alpha值的图像:http://imgur.com/W8dNbBY
答案 0 :(得分:3)
首先,如果您想拥有透明图像,SDL2中有两种方法。
使用图像编辑软件并直接更改其中的alpha值,它将继续传输到SDL2。
方法2 :(动态方法)
SDL_SetTextureBlendMode(texture,SDL_BLENDMODE_BLEND); //这在blendmode中设置纹理
alpha = xx //此部分应该是您更改Alpha值的位置。你可以制作淡入淡出效果等等......只需将更改放在这里。
SDL_SetTextureAlphaMod(texture,alpha); //将alpha设置为纹理
SDL_RenderCopy(渲染器,纹理,NULL和& rect); //使用全新的alpha~
重绘图像