天天看點

cocos2d-x 動畫裁剪

在做卡牌遊戲的項目中,遇到了動畫裁剪的問題。假如動畫是一個圓形動畫,在page1的頁面中位置靠右,在page2中很可能會看到這個動畫的另一半此時,就需要做動畫做裁剪,在工程中有一個setScissorRect函數,可以對動畫進行裁剪。

void play::PCBaseNode::setScissorRect(const CCRect & val )

{

scissorRect = val;

haveScissorRect = true;

scissorBoxRect = freshScissorBoxRect();

}

CCRect play::PCBaseNode::freshScissorBoxRect()

{

CCRect tempRect;

tempRect.origin = this->convertToWorldSpace(scissorRect.origin);

CCPoint sizeP = this->convertToWorldSpace(ccp(scissorRect.origin.x+scissorRect.size.width,scissorRect.origin.y+scissorRect.size.height));

tempRect.origin.x *= CC_CONTENT_SCALE_FACTOR();

tempRect.origin.y *= CC_CONTENT_SCALE_FACTOR();

tempRect.size.width = sizeP.x * CC_CONTENT_SCALE_FACTOR() – tempRect.origin.x;

tempRect.size.height = sizeP.y * CC_CONTENT_SCALE_FACTOR() – tempRect.origin.y;

return tempRect;

}

繼續閱讀