天天看点

关于COCOS2d-X中截图素材局部的Rect参数

在官方的API中,一种Rect的构造函数共四个参数,即x,y,width,height。

按照官方解释,xy为左下角原点坐标。但是在截取图片素材的时候,例如SpriteFrame的create方法,需要传入一个Rect对象指定范围。

需要注意的是,此时的使用的是图片本身的坐标系,级x,y代表的是左上的原点。对于width和height,如果按照图片的实际像素尺寸去计算得到的结果是不正确的。根据源代码可以发现,传入的Rect对象会被一个宏处理:

这个宏的作用是将点矩阵转换为像素矩阵

那么一切明了,我们传入的Rect对象应该是一个点矩阵,但是一般我们都会以像素作为计算单位,所以需要这样处理,类似的:

SpriteFrame::createWithTexture(texture, CC_RECT_PIXELS_TO_POINTS(Rect( + i*texture->getPixelsWide() / , , texture->getPixelsWide() / , texture->getPixelsHigh() / )))
           

即通过像素计算width和height,然后将结果通过

CC_RECT_PIXELS_TO_POINTS
           

转换为点矩阵