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);



posted on 2013-12-29 15:02 cslover 阅读(4660) 评论(0)  编辑 收藏 引用 所属分类: Cocos2d-x


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2013年12月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

导航

统计

常用链接

留言簿(1)

随笔分类

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜