赞
踩
Cocos2d-x的坐标系和OpenGL坐标系相同,都是起源于笛卡尔坐标系。
右手系:
世界坐标系也就是绝对坐标系,Cocos2d中的元素是有父子关系的层级结构,通过Node的setPosition方法设定元素的位置使用的是相对与其父节点的本地坐标系而非世界坐标系,最后绘制屏幕的时候Cocos2d会把这些元素的本地坐标映射成世界坐标系。
本地坐标系也就是相对坐标系,是和节点相关联的坐标系。每个节点都有独立的坐标系,当节点移动或改变方向时,和该节点相关联的坐标系将随之移动或改变方向。
将一个节点添加到父节点里面时,需要设置其在父节点上的位置,本质上是设置节点的锚点在父节点坐标系上的位置。
Anchor Point的两个参数范围为0到1,表示的是乘数因子。(0.5, 0.5)表示Anchor Point位于节点长度和宽度的一半的地方,也就是自己的中心和是父节点对齐的地方。
Cocos2d中Layer的锚点的默认值为0和0,其他Node的默认值为0.5和0.5。
例如:
auto red = LayerColor::create(Color4B(255, 100, 100, 128), visibleSize.width/2, visibleSize.height/2);
auto green = LayerColor::create(Color4B(100, 255, 100, 128), visibleSize.width/4, visibleSize.height/4);
red->addChild(green);
this->addChild(red, 0);
因为Layer比较特殊,它默认忽略锚点,所以要调用ignoreAnchorPointForPosition()接口来改变锚点。例如:
auto red = LayerColor::create(Color4B(255, 100, 100, 128), visibleSize.width/2, visibleSize.height/2);
red->ignoreAnchorPointForPosition(false);
red->setAnchorPoint(Point(
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。