SDL图像位置与大小的设置

您所在的位置:网站首页 改变图像位置怎么调 SDL图像位置与大小的设置

SDL图像位置与大小的设置

2024-07-11 06:43| 来源: 网络整理| 查看: 265

     很多教程都讲过SDL如何在窗口上显示图片,但是没怎么说明图片在窗口上显示时,可以设置图片的大小和显示的位置(可能是我自己没搜到的原因吧),所以就有了写这一篇文章的原因。下面就来聊聊如何设置吧。

        首先得了解:

SDL_Rect{ int x, int y, int w, int h }

其中x,y是左上角的坐标,w,h是矩形宽度与大小。单独拿出来理解的话就理解成一个小矩形。

        现在就步入正题:位置和大小的设置。

        图像在窗口上的显示有两种方式:

第一种:

int SDL_BlitSurface(SDL_Surface* src, const SDL_Rect* srcrect, SDL_Surface* dst, SDL_Rect* dstrect)

其中srcrect.x与y控制了图片的截取的坐标,w,h表示截取图片大小。(我对于其中rect的理解是,在你引入的图片src画上一个坐标为x,y大小的w,h的矩形截取其中的内容)。dstrect.x与y控制了截取的图片在窗口上安放的位置,在窗口上的大小则与srcrect的w,h大小有关(dstrect的w,h改变数值没有影响,我认为是dstrect的w,h在函数中是等于strect的w,h(因为没有去看该函数的源码可能理解有错误))

第二种

int SDL_RenderCopy(SDL_Renderer * renderer, SDL_Texture * texture, const SDL_Rect * srcrect, const SDL_Rect * dstrect);

其中srcrect的理解与上文一样,dstrect则是多了w,h控制在在窗口上的大小。

        附加:说两种如何初始化或者窗口上的图片的方法:   

1.

int SDL_FillRect(SDL_Surface * dst, const SDL_Rect * rect, Uint32 color);

    这里的rect就使用NULL代表整个屏幕,color用0x颜色码。

2.

int SDL_SetRenderDrawColor(SDL_Renderer * renderer, Uint8 r, Uint8 g, Uint8 b, Uint8 a); int SDL_RenderClear(SDL_Renderer * renderer);

第一个函数表示设置画笔的颜色与透明度,其中rgb就是RGB码,a代表透明度,用0就好了;第二个函数就表示用什么画笔去清理窗口.。(单纯理解为设置一个颜色,然后用这个颜色去填充窗口就好了)。

题外:这是本人第一次写文章,写得挺(就不说了),然后也没有附上什么代码,毕竟看了后不自己去实践,马上会忘记的,主要是一个很简单的功能写出来代码比较长,浪费时间去看,自己去试一试就知道功能了(单纯懒罢了我,笑)。如有错误之处,欢迎指正



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3