SDL图像位置与大小的设置 |
您所在的位置:网站首页 › 改变图像位置怎么调 › SDL图像位置与大小的设置 |
很多教程都讲过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 |