cocos2dx addchild坐标问题

a.addchild(b);

会把a->getBoundingBox矩形的左下角坐标点和b的锚点贴合在一起。  ----- 其他引擎默认不是这样的,所以再跨平台导数据的时候,要注意这些细微的差别,只在cocos2d-x 平台内自己玩,一点关系都没有

 

原因:cocos2d-x 的 本地坐标系 和 flash 的本地坐标系的坐标原点的定义不同造成的-------》总之,cocos2d-2x本地坐标系原点为node的左下角坐标!!!

 

 

世界坐标系也叫做绝对坐标系,cocos2d中的元素是有父子关系的层级结构,我们通过CCNode的position设定元素的位置使用的是相对与其父节点的本地坐标系而非世界坐标系。最后在绘制屏幕的时候cocos2d会把这些元素的本地坐标映射成世界坐标系坐标。世界坐标系和GL坐标系一致,原点在屏幕左下角。


本地坐标系也叫做物体坐标系,是和特定物体相关联的坐标系。每个物体都有它们独立的坐标系,当物体移动或改变方向时,和该物体关联的坐标系将随之移动或改变方向。比如用cocos2d-x创建了个矩形colorLayer:CCRect(10,10,100,100),这是的本地坐标系为以(10,10)为坐标原点,x轴向右,y轴向上。如果创建了一个CCSprite,锚点为(0.5,0.5),位置为(100,100),size为(40,40),这时的本地坐标系为以(80,80)为坐标原点,x轴向右,y轴向上。总之,本地坐标系原点为node的左下角坐标

posted @ 2015-05-26 11:09  porter_代码工作者  阅读(394)  评论(0编辑  收藏  举报