cocos2d-x AnchorPoint锚点
2015-07-30 10:25
441 查看
锚点是定位和变换操作的一个重点。锚点我们可以看成用一根图钉将一张纸或者相片钉在墙上的那个点。
节点的位置是由我们设置的position和anchor point一起决定的。
值得一提的是,anchor point的默认位置Layer的是左下,而其他的node是中点。
节点的原点是父节点的左下角。
[cpp] view
plaincopy
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);
[cpp] view
plaincopy
layer2->setPosition(50,50);
可见Layer的锚点是左下角,节点的原点是父节点的左下角。
再看一个:
[cpp] view
plaincopy
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
设置锚点:
Layer和Sprite有不同,layer要设置锚点,必须先:ignoreAnchorPointForPosition(false);
[cpp] view
plaincopy
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));
[cpp] view
plaincopy
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不用设置即可。
[cpp] view
plaincopy
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);
和前面第三个图比较一下就了解了。小女孩的锚点已经到了红色点位置
本文转自:http://blog.csdn.net/xuguangsoft/article/details/8425623
节点的位置是由我们设置的position和anchor point一起决定的。
值得一提的是,anchor point的默认位置Layer的是左下,而其他的node是中点。
节点的原点是父节点的左下角。
[cpp] view
plaincopy
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);
[cpp] view
plaincopy
layer2->setPosition(50,50);
可见Layer的锚点是左下角,节点的原点是父节点的左下角。
再看一个:
[cpp] view
plaincopy
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
设置锚点:
Layer和Sprite有不同,layer要设置锚点,必须先:ignoreAnchorPointForPosition(false);
[cpp] view
plaincopy
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));
[cpp] view
plaincopy
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不用设置即可。
[cpp] view
plaincopy
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);
和前面第三个图比较一下就了解了。小女孩的锚点已经到了红色点位置
本文转自:http://blog.csdn.net/xuguangsoft/article/details/8425623
相关文章推荐
- Cocos2dx之文字显示
- cocos2dx安卓打包与调试(适用quick3.5)
- Quick-Cocos2d-x初学者游戏教程(一)
- cocos2d-x 用脚本创建新的工程
- 9秒学院Cocos2d-x入门教程(详细的实例和讲解)
- cocos2dx骨骼动画Armature源码分析(一)
- 我对cocos2dx的理解和总结
- quick Cocos2d-x lua 八方向摇杆代码实现
- Cocos2d-x 强制设置运动刚体的位置
- cocos2dx中的三种缓存
- 【Android】给Cocos2d-x的EditBox添加确定按钮
- Cocos2dx之CCLayer层
- Cocos2dx之精灵坐标系
- cocos2d-x 角色选择视图 类似ListView
- 【Cocos游戏实战】功夫小子第八课之游戏打包和相关问题说明
- 【Cocos游戏实战】功夫小子第七课之游戏主功能场景逻辑功能和暂停功能场景的分析和实现
- Cocos2dx NotificationCenter(广播或通告)的使用方法
- Cocos移植Android-Android.mk编译后的文件
- Cocos2d-x函数----addChild()
- Cocos2dx之精灵创建