2 wdany wdany 于 2013.06.30 10:13 提问

cocos2d-x 如何设置让精灵移动超出父节点的的范围的部分不显示

我想在精灵移动,但是超出父节点的显示范围就不显示,怎么实现啊

2个回答

xujiayin
xujiayin   2013.07.02 07:01
已采纳

要对超出部分实现"裁剪"

覆盖CCNode的函数void visit();

void visit()//此方法为绘制时调用,系统每帧调用
{
glEnable(GL_SCISSOR_TEST);//这句启用纹理裁剪

//这里要根据CCNode 的位置 和父类的大小 来计算具体的裁剪区域
glScissor(0, 0, 100, 100);//x, y, w, h 

CCNode::visit();//调用自己的类方法
glDisable(GL_SCISSOR_TEST);//管理纹理裁剪
}
liyong748
liyong748   2013.08.05 23:06

也可以使用遮罩层技术,即只显示遮罩层中的部分,这种技术可以显示不规则图形的遮挡

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!