首页 > 软件开发 > 编程语言 >

SDL2入门(九)调节texture透明度

来源:互联网 2023-03-17 00:16:25 227

texture可以由图片或文字转换而来,当我们要实现texture透明度怎么办?sNd办公区 - 实用经验教程分享!

这里以图片circle.png来介绍。sNd办公区 - 实用经验教程分享!

工具/原料

  • c4droid、sdl插件
  • 一张图片:circle.png

方法/步骤

  • 1

    利用第三节课的代码先显示这张图片:修改了代码的图片路径和显示位置,见下图红色标记。运行结果如图。sNd办公区 - 实用经验教程分享!

    SDL2入门(九)调节texture透明度sNd办公区 - 实用经验教程分享!

    SDL2入门(九)调节texture透明度sNd办公区 - 实用经验教程分享!

  • 2

    现在只需添加两行代码即可实现texture透明度。见下图红色标记。sNd办公区 - 实用经验教程分享!

    SDL2入门(九)调节texture透明度sNd办公区 - 实用经验教程分享!

  • 3

    第12行:SDL_SetTextureBlendMode是设置混合模式的函数,texture为混合的对象,SDL_BLMODE_BL是透明混合。另外还有SDL_BLMODE_NONE:没有混合;SDL_BLMODE_ADD:添加颜色混合;SDL_BLMODE_MOD:颜色调整混合。详情可查看官网SDL wiki。sNd办公区 - 实用经验教程分享!

    SDL2入门(九)调节texture透明度sNd办公区 - 实用经验教程分享!

  • 4

    第13行:SDL_SetTextureAlphaMode是渲染texture时设置它的透明度。参数:255/2是一半透明,它取值范围:0~255,另外255是不透明,0是全透明。sNd办公区 - 实用经验教程分享!

    SDL2入门(九)调节texture透明度sNd办公区 - 实用经验教程分享!

  • 4本页面未经许可获取自百度经验
  • 5

    运行结果。sNd办公区 - 实用经验教程分享!

    相比之前的图片,这个图片相对暗淡。sNd办公区 - 实用经验教程分享!

    SDL2入门(九)调节texture透明度sNd办公区 - 实用经验教程分享!

  • 6

    代码:sNd办公区 - 实用经验教程分享!

    #includeSDL2/SDL.h>sNd办公区 - 实用经验教程分享!

    #includeSDL2/SDL_image.h>sNd办公区 - 实用经验教程分享!

    intmain(intargc,char**argv)sNd办公区 - 实用经验教程分享!

    {sNd办公区 - 实用经验教程分享!

    SDL_Init(SDL_INIT_VIDEO);sNd办公区 - 实用经验教程分享!

    SDL_Window*window=SDL_CreateWindow("调节texture透明度",SDL_WINDOWPOS_CENTERED,SDL_WINDOWPOS_CENTERED,720,1280,SDL_WINDOW_SHOWN);sNd办公区 - 实用经验教程分享!

    SDL_Renderer*renderer=SDL_CreateRenderer(window,-1,SDL_RERER_ACCELERATED);sNd办公区 - 实用经验教程分享!

    SDL_RenderClear(renderer);sNd办公区 - 实用经验教程分享!

    SDL_Surface*surface=IMG_Load("./resource/circle.png");sNd办公区 - 实用经验教程分享!

    SDL_Rectbox={150,400,surface->w,surface->h};sNd办公区 - 实用经验教程分享!

    SDL_Texture*texture=SDL_CreateTextureFromSurface(renderer,surface);sNd办公区 - 实用经验教程分享!

    SDL_SetTextureBlendMode(texture,SDL_BLMODE_BL);sNd办公区 - 实用经验教程分享!

    SDL_SetTextureAlphaMod(texture,255/2);sNd办公区 - 实用经验教程分享!

    SDL_RenderCopy(renderer,texture,NULL,&box);sNd办公区 - 实用经验教程分享!

    SDL_RenderPresent(renderer);sNd办公区 - 实用经验教程分享!

    SDL_Delay(6000);sNd办公区 - 实用经验教程分享!

    SDL_FreeSurface(surface);sNd办公区 - 实用经验教程分享!

    SDL_DestroyTexture(texture);sNd办公区 - 实用经验教程分享!

    SDL_DestroyRenderer(renderer);sNd办公区 - 实用经验教程分享!

    SDL_DestroyWindow(window);sNd办公区 - 实用经验教程分享!

    SDL_Quit();sNd办公区 - 实用经验教程分享!

    }sNd办公区 - 实用经验教程分享!

  • 注意事项

    • 测试c4droid版本:5.96
    • 如有不足或建议欢迎指正。

    以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!sNd办公区 - 实用经验教程分享!


    标签: 编程编程语言

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号统计代码