我需要一个覆盖整个屏幕的“遮罩”图层,中间部分(圆圈)是透明的。然后我可以使用触摸移动遮罩层。用户只能看到中间的透明部分。
我认为png文件不能提供帮助,因为文件需要非常大才能覆盖整个屏幕。
通过编码可以做到吗?
我在网上找到了这个,但对openGL了解不多。 http://www.cocos2d-iphone.org/forum/topic/7921
如果我可以使用CCMaskLayer并输入半径,那将会很棒。我可以自己处理触摸事件。
附加的png文件是预期的结果,中心部分是透明的。我需要这个来覆盖我的屏幕,只显示中间部分。红色部分被覆盖。
答案 0 :(得分:3)
您可以通过两种方式使用裁剪的圆形纹理来解决此任务:
1)在屏幕中心绘制带有圆形纹理的精灵,并在周围(顶部,底部,左侧和右侧)绘制另外4个精灵,红色纹理较小,但缩放以覆盖所有屏幕。
2)(更优雅,但更难实现)使您的遮罩层全屏,但调整纹理坐标。详情:
GL_CLAMP_TO_EDGE
到您的圆形纹理调整图层顶点的纹理坐标(为此,您需要将基类CCLayer
子类化):
此处v
表示顶点位置和t
- 纹理坐标。您需要为图层的四个角顶点设置正确的纹理坐标。对于将来,如果您想要拖动圆,则需要为纹理坐标添加一些偏移值。
答案 1 :(得分:3)
我写一个CCMaskLayer来完成同样的事情。