我要用clippingnode做一个类似歌词的显示效果,根据官方例子写了一个来测试,发现没有问题,无论是shape还是shape外都是透明的,能显示下层的内容,代码如下。但是我把这段代码移到我的游戏里面就出现问题了,首先shape不在是透明,而成了绿色,而shape以外的地方都成了白色,完全没办法把下层的东西显示出来,而且clipper里面添加的子节点也不会被clipper裁剪。这到底是怎么回事????
auto s = Director::sharedDirector()->getWinSize();
auto shape = DrawNode::create(); static Vec2 triangle; triangle = Vec2(-100, -100); triangle = Vec2(100, -100); triangle = Vec2(0, 100);
static Color4F green(0, 1, 0, 1); shape->drawPolygon(triangle, 3, green, 0, green); shape->setTag( 100 ); shape->setPosition(50, 50);
auto clipper = ClippingNode::create(); clipper->setTag( 101 ); clipper->setAnchorPoint(Vec2(0.5, 0.5)); clipper->setPosition(s.width / 2 - 50, s.height / 2 - 50); clipper->setStencil(shape); this->addChild(clipper,20); auto content = Sprite::create("grossini.png"); content->setScale( 1.5 ); auto scale = ScaleBy::create(1.33f, 1.5f); content->runAction(RepeatForever::create(Sequence::create(scale, scale->reverse(), nullptr))); content->setPosition(50, 50); clipper->addChild(content);
下面是两张效果图 带背景的是测试的效果,绿色三角的是添加到我的项目里的