2013-12-17 125 views
0

如何更改SDL_Texture的不透明度?而且我不知道如何在我的功能中應用不透明度數字。SDL_Texture不透明度

我的代碼

void drawTexture(SDL_Texture *img, int x, int y, int width, int height, double opacity) 
    { 
     SDL_Rect SrcR; 
     SDL_Rect DestR; 

     SrcR.x = 0; 
     SrcR.y = 0; 
     SrcR.w = width; 
     SrcR.h = height; 

     DestR.x = x; 
     DestR.y = y; 
     DestR.w = width; 
     DestR.h = height; 

     SDL_RenderCopy(_main::_main_renderer, img, &SrcR, &DestR); 
    } 

回答

4

使用SDL_SetTextureAlphaMod

SDL_SetTextureAlphaMod(img, opacity); 

這將設置紋理的不透明度(阿爾法)時,α值必須是float0.0(完全透明又名不可見的)到1.0(完全不透明)。

+0

謝謝,但必須有不透明度0-255。 – PSSGCSim

+0

在這種情況下,您可以將它傳遞給像這樣的函數: 'SDL_SetTextureAlphaMod(img,opacity/255.0);' – xorguy