cocos2d-x中ignoreAnchorPointForPosition函数

cocos2d-x中ignoreAnchorPointForPosition函数

cocos2d中 CCLayerColor 的默认锚点是(0.5,0.5)。该节点的坐标是参考父节点的,而父节点的坐标原点是父节点left、buttom。
CCLayerColor *layer1 = CCLayerColor::create(ccc4(255,0,0,255),200,200);
CCLayerColor *layer2 = CCLayerColor::create(ccc4(0,255,0,255),100,100);
this->addChild(layer1);
layer1->addChild(layer2);
这里我们添加了2个层,而layer1作为layer2父节点,在我们未设置layer2坐标的情况下默认为layer的(left,bottom)效果如下图:


CCLayerColor *layer1 = CCLayerColor::create(ccc4(255,0,0,255),200,200);
CCLayerColor *layer2 = CCLayerColor::create(ccc4(0,255,0,255),100,100);
        layer2->ignoreAnchorPointForPosition(false);
         this->addChild(layer1);
layer1->addChild(layer2);


我们默认的position是左下角点的坐标(left,bottom)这里是(0,0)点,即layer1和layer2的position都是(0,0),在开启锚点有效后,
我们看出layer2中的正方形只有上图中的1/4,其余部分都越出屏幕区域,这里我们可知layer2的默认锚点为(0.5,0.5),这个锚点就是
相对点的意思,比如 LEFT_TOP 指出了当前CCNode的左上角点对应于CCNode的position点,这像一个映射一般。
var Anchor = {};  
Anchor.LEFT_TOP = cc.p(0,1);  
Anchor.RIGHT_TOP = cc.p(1, 1);  
Anchor.RIGHT_BOTTOM = cc.p(1, 0);  
Anchor.LEFT_BOTTOM = cc.p(0, 0);  
Anchor.MIDDLE = cc.p(0.5, 0.5); 
下面再贴一段代码和效果图以供理解
        CCLayerColor *layer1 = CCLayerColor::create(ccc4(255,0,0,255),200,200);
CCLayerColor *layer2 = CCLayerColor::create(ccc4(0,255,0,255),100,100);
layer1->setPosition(ccp(100,100));
layer2->ignoreAnchorPointForPosition(false);
this->addChild(layer1);
layer1->addChild(layer2);



你可能感兴趣的:(cocos2d-x中ignoreAnchorPointForPosition函数)