看了网上的“遮罩层实现捕鱼达人滚动数字表盘 ”,并按照例子敲了一遍代码。
原文代码如下:
void ScrollLabel::visit(){
//启动遮罩效果
glEnable(GL_SCISSOR_TEST);
CCPoint pos=CCPointZero;
pos=visibleNode->getParent()->convertToWorldSpace(pos);
CCRect rect =CCRectMake(pos.x, pos.y, 20, 20);
//设置遮罩效果
glScissor(rect.origin.x, rect.origin.y, rect.size.width, rect.size.height);
CCNode::visit();
//关闭遮罩效果
glDisable(GL_SCISSOR_TEST);
}
```
我写的时候发现visit是final的,无法重写,所以改成重写visit(Renderer *renderer, const Mat4& parentTransform, uint32_t parentFlags)这个虚函数
代码如下
void ScrollLabel::visit(Renderer *renderer, const Mat4& parentTransform, uint32_t parentFlags)
{
glEnable(GL_SCISSOR_TEST);
Point pos = Point::ZERO;
pos = visibleNode->getParent()->convertToWorldSpace(pos);
Rect rect = Rect::Rect(pos.x, pos.y, 20, 20);
glScissor(rect.origin.x, rect.origin.y, rect.size.width, rect.size.height);
Node::visit(renderer, parentTransform, parentFlags);
glDisable(GL_SCISSOR_TEST);
}
```
cocos2dx版本3.2 RC0
请问我写的哪里出错了?