码迷,mamicode.com
首页 > 其他好文 > 详细

cocos2d-x AnchorPoint锚点

时间:2015-02-05 21:52:14      阅读:223      评论:0      收藏:0      [点我收藏+]

标签:

锚点是定位和变换操作的一个重点。锚点我们能够看成用一根图钉将一张纸或者相片钉在墙上的那个点。

节点的位置是由我们设置的positionanchor point一起决定的。

值得一提的是,anchor point的默认位置Layer的是左下,而其它的node是中点。

节点的原点是父节点的左下角。

	CCLayer* layer1 = CCLayerColor::create(ccc4(255,0,0,255), 300, 200);
	CCLayer* layer2 = CCLayerColor::create(ccc4(255,255,0,255), 100, 100);
     	
	addChild(layer1);
	layer1->addChild(layer2);
技术分享
	layer2->setPosition(50,50);
技术分享

可见Layer的锚点是左下角,节点的原点是父节点的左下角。

再看一个:

	CCSprite *p1 = CCSprite::create("HelloWorld.png", CCRectMake(100, 100, 100, 100));
	CCSprite *p2 = CCSprite::create("girl1.png");
	addChild(p1);
	p1->addChild(p2);   //p2作为p1的子节点
	setPosition(200,200);  // Layer 的原点移到200,200
技术分享

设置锚点:

LayerSprite有不同,layer要设置锚点,必须先:ignoreAnchorPointForPosition(false);

	CCLayer* layer1 = CCLayerColor::create(ccc4(255,0,0,255), 300, 200);
	CCLayer* layer2 = CCLayerColor::create(ccc4(255,255,0,255), 100, 100);
	addChild(layer1);
	layer1->addChild(layer2);
/*	layer1->ignoreAnchorPointForPosition(false);*/
	layer1->setAnchorPoint(ccp(0.5,0.5));
技术分享
	CCLayer* layer1 = CCLayerColor::create(ccc4(255,0,0,255), 300, 200);
	CCLayer* layer2 = CCLayerColor::create(ccc4(255,255,0,255), 100, 100);	
	addChild(layer1);
	layer1->addChild(layer2);
	layer1->ignoreAnchorPointForPosition(false);
	layer1->setAnchorPoint(ccp(0.5,0.5));
技术分享

Sprite不用设置就可以。

	CCSprite *p1 = CCSprite::create("HelloWorld.png", CCRectMake(100, 100, 100, 100));
	CCSprite *p2 = CCSprite::create("girl1.png");
	addChild(p1);
	p1->addChild(p2);
	p2->setAnchorPoint(ccp(1,1));
	setPosition(200,200);
技术分享

和前面第三个图比較一下就了解了。小女孩的锚点已经到了红色点位置


cocos2d-x AnchorPoint锚点

标签:

原文地址:http://www.cnblogs.com/gcczhongduan/p/4275969.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!