cocos2d-x 中的坐标系

cocos2d-x 中的坐标系是笛卡尔坐标系,向右为 x 轴正方向,向上为 y 轴正方向,以像素为单位

原点在屏幕左下角的坐标系叫世界坐标系,是整个游戏中的根基,直接添加到场景中的节点,设置的位置都是指世界坐标系,getPosition 返回的都是世界坐标系

每个节点都可以当做一个坐标系,节点坐标系的原点位于其内容的左下角,节点添加子节点时, 子节点设置的位置,按照父节点的坐标系,当父节点的坐标变化时,子节点也做相同的变化,即子节点相对父节点不变;节点坐标系是坐标系中的坐标系,分析某个节点坐标一定要找对父节点

Node 节点提供世界坐标系和节点坐标系的转换函数:

    Vec2 convertToNodeSpace(const Vec2& worldPoint) const;
    Vec2 convertToWorldSpace(const Vec2& nodePoint) const;

锚点

    virtual void setAnchorPoint(const Vec2& anchorPoint);
    virtual const Vec2& getAnchorPoint() const;

锚点有两层含义,相对父节点来说是设置的位置,setPosition 设置的是锚点的位置

相对自己来说,锚点是自己变形的参照点,比如旋转时,是按中心点旋转,还是按左下角旋转?按锚点旋转

锚点取值在 (0,0) ~ (1,1)之间,参照 Size 大小,是个比例数; (0.5,0.5) 即正中间,也是默认的,可以任意改锚点,甚至超出范围,至少效果就仁者见仁,智者见智了。

根据锚点的第一层含义,修改锚点也能改位置,特别是小范围,精确的修改,但会带来不想要的副作用,所以不要狗拿耗子多管闲事了。

作者:H·K
出处:http://www.cnblogs.com/pythian/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
如果文中有什么错误,欢迎指出。以免更多的人被误导。
原文地址:https://www.cnblogs.com/pythian/p/4616427.html