Cocos2d-X 2.03 CCScrollView裁剪BUG及修复

在原始的Cocos2d-X2.03中:

CCPoint screenPos = this->convertToWorldSpace(this->getParent()->getPosition());

glEnable(GL_SCISSOR_TEST);

float s = this->getScale();

CCEGLView::sharedOpenGLView()->setScissorInPoints(screenPos.x*s, screenPos.y*s, m_tViewSize.width*s, m_tViewSize.height*s);

来裁剪超出区域,其中红色代码应该修改为this->getPosition()取控件自身坐标,而不是父节点坐标。

否则在CCScrollView添加到父节点,且父节点setPosition(x),x为非零坐标后,CCScrollView会出现裁剪错位。

最新的cocos2d-2.1rc0-x-2.1.2-hotfix已经采用getViewRect修复了此BUG。

猜你喜欢

转载自coolcat.iteye.com/blog/1867185