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就好了;第二个函数就表示用什么画笔去清理窗口.。(单纯理解为设置一个颜色,然后用这个颜色去填充窗口就好了)。

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值