天天看點

關于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
           

轉換為點矩陣