我如何剪辑/裁剪/掩码或只是在Cocos2D中设置CCSprite的框架?
类似于:为UIView设置框架,剪切子视图= TRUE
我的CCSprite Main Sprite添加了多个Child Sprite.我只希望主Sprite精灵的Mask部分可见.有没有办法剪辑或使用CCSprite的掩码?
我可以在顶部剪切背景和图层,只留下那个可见区域,但这是唯一的方法吗?!
这是一个示例图像,展示了我想要实现的目标: alt text http://dnamique.com/maskSprite.jpg
Bac*_*ach 16
我最终使用了GL_SCISSOR.
在MainSprite中我强制要求:
- (void) visit
{
if (!self.visible) {
return;
}
glEnable(GL_SCISSOR_TEST);
glScissor(x, y, width, height);
[super visit];
glDisable(GL_SCISSOR_TEST);
}
Run Code Online (Sandbox Code Playgroud)
这将剪切或屏蔽指定区域.
唯一棘手的一点是,在横向模式下,Cocos2D在屏幕的左下角有0,0,而OpenGL在右下角有,因为它不考虑屏幕的方向.
换句话说,对于OpenGL,请考虑使用旋转的纵向屏幕.
Lea*_*s2D 12
我编写了一个ClippingNode类,它就是这样做的.您可以将其他节点(精灵,标签等)添加到ClippingNode,它们只会在ClippingNode指定的区域中绘制.它还需要考虑设备轮换.
在内部,它使用GL_SCISSOR_TEST,就像在巴赫的回答中一样.
http://www.learn-cocos2d.com/2011/01/cocos2d-gem-clippingnode/