如何快速学习:[1]Swift编程语言,Swift,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Ojective-C*共同运行于MacOS和iOS平台,用于搭建基于苹果平台的应用程......
2023-03-17 283 编程语言
texture可以由图片或文字转换而来,当我们要实现texture透明度怎么办?
这里以图片circle.png来介绍。
利用第三节课的代码先显示这张图片:修改了代码的图片路径和显示位置,见下图红色标记。运行结果如图。
现在只需添加两行代码即可实现texture透明度。见下图红色标记。
第12行:SDL_SetTextureBlendMode是设置混合模式的函数,texture为混合的对象,SDL_BLMODE_BL是透明混合。另外还有SDL_BLMODE_NONE:没有混合;SDL_BLMODE_ADD:添加颜色混合;SDL_BLMODE_MOD:颜色调整混合。详情可查看官网SDL wiki。
第13行:SDL_SetTextureAlphaMode是渲染texture时设置它的透明度。参数:255/2是一半透明,它取值范围:0~255,另外255是不透明,0是全透明。
运行结果。
相比之前的图片,这个图片相对暗淡。
代码:
#includeSDL2/SDL.h>
#includeSDL2/SDL_image.h>
intmain(intargc,char**argv)
{
SDL_Init(SDL_INIT_VIDEO);
SDL_Window*window=SDL_CreateWindow("调节texture透明度",SDL_WINDOWPOS_CENTERED,SDL_WINDOWPOS_CENTERED,720,1280,SDL_WINDOW_SHOWN);
SDL_Renderer*renderer=SDL_CreateRenderer(window,-1,SDL_RERER_ACCELERATED);
SDL_RenderClear(renderer);
SDL_Surface*surface=IMG_Load("./resource/circle.png");
SDL_Rectbox={150,400,surface->w,surface->h};
SDL_Texture*texture=SDL_CreateTextureFromSurface(renderer,surface);
SDL_SetTextureBlendMode(texture,SDL_BLMODE_BL);
SDL_SetTextureAlphaMod(texture,255/2);
SDL_RenderCopy(renderer,texture,NULL,&box);
SDL_RenderPresent(renderer);
SDL_Delay(6000);
SDL_FreeSurface(surface);
SDL_DestroyTexture(texture);
SDL_DestroyRenderer(renderer);
SDL_DestroyWindow(window);
SDL_Quit();
}
以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!
相关文章
如何快速学习:[1]Swift编程语言,Swift,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Ojective-C*共同运行于MacOS和iOS平台,用于搭建基于苹果平台的应用程......
2023-03-17 283 编程语言
web图表开发工具FineReport:[11]连续分组,数据库表数据是按照时间先后录入的,查询的时候希望按照时间先后,某个字段连续相同的话就合并起来显示,这样的报表可以通过相邻连续分组来实现。......
2023-03-17 507 编程语言