我正在疯狂地尝试解决这个问题,所以非常感谢您的帮助。我想要隐藏大部分精灵并逐渐显示它。如果只使用矩形,这个方法可以很好地实现。例如,我找到了某人实现的“ClippingNode”类,并且它运行得很好,特别是代码的这一部分:
-(void) visit
{
glPushMatrix();
glEnable(GL_SCISSOR_TEST);
glScissor(clippingRegion.origin.x + positionInPixels_.x, clippingRegion.origin.y + positionInPixels_.y, clippingRegion.size.width, clippingRegion.size.height);
[super visit];
glDisable(GL_SCISSOR_TEST);
glPopMatrix();
}
问题是我需要一个不规则的形状,而不仅仅是一个矩形。我希望我可以堆叠调用glScissor并创建由许多较小矩形组成的形状,但不幸的是glScissor只能工作一次(最后一次调用时)。似乎cocos2d不支持OpenGL的模板缓冲区(是吗?),即使它支持,我发现OpenGL很难理解,我仍然需要有人向我解释。如果我可以将贝塞尔路径设置为精灵的蒙版(我认为您可以在Quartz中这样做),那就太好了,但似乎不支持这样做。如果有任何智慧之言,请告诉我!