• Cocos2dx坐标系简介


    OpenGL 坐标系 
     该坐标系 原点在屏幕左下角,x 轴向右,y 轴向上
     
     屏幕坐标系 
     原点在屏幕左上角,x 轴向右,y 轴向下
     
    iOS 的 屏幕触摸事件 CCTouch 传入的位置信息使用的是该坐标系   因此在 Cocos2D-x 中对触摸事 件做出响应前,需要首先把触摸点转化到 OpenGL 坐标系
     
     
    世界坐标系(绝对坐标系)
     
    世界坐标系和 OpenGL 坐标系方向一致,原点在屏 幕左下角,x 轴向右,y 轴向上
     

     锚点

    只有 在 CCNode 类节点使用贴图的情况下,锚点才有意义

     
    锚点的默认值是(0.5,0.5),表示的并不是一个像素点,而是一个乘数因子
     
     
    (0.5,0.5) 表示锚点位于贴图长度乘 0.5 和宽度乘 0.5 的地方,即贴图的中心
     
     
    节点坐标系
     
     
    如果把锚点设置成(0,0),贴图的左下角就会和节点的位置重合,这 可能使得元素定位更为方便,但会影响到元素的缩放和旋转等一系列变换 
     
     
    CCNode 类的设置位置使用的就是父节点的节点坐标系。它和 OpenGL 坐标系的方向也 是一致的,x 轴向右,y 轴向上,原点在父节点的左下角。
     
     
     
    CCNode 类对象中有两个方便的函数可以做坐标转换:
    convertToWorldSpace:把基于当前节点的本地坐标系下的坐标转换到世界坐标系中。 
    convertToNodeSpace:把世界坐标转换到当前节点的本地坐标系中。

    这两种转换都是不考虑锚点的,都以当前节点父类的左下角的坐标为标准。

     

    CCNode 还提供了 convertToWorldSpaceAR 和 convertToNodeSpaceAR。这两个方法完成同样 的功能,但是它们的基准坐标是基于坐标锚点的。几乎所有的游戏引擎都会使用类似的本地 坐标系而非世界坐标系来指定元素的位置。

    这样做的好处是,当计算物体运动的时候,使用同一本地坐标系的元素可以作为一个子

    仿射变换
     
     
    游戏大量使用的旋转、缩放、平移等都是仿射变换。所谓仿射变换 是指在线性变换的基础上加上平移
     
     
     
    通过节点控制屏幕中的全体渲染对象
     
     
    CCNode 类没有贴图,也就是说在屏幕上单独建立一个节点是没有任何 效果的,但是可以通过这个“无形”的节点来控制屏幕上的节点
     
     
  • 相关阅读:
    操作系统六文件管理
    Educational Codeforces Round 38 (Rated for Div. 2) ABCD
    51nod 1100 斜率最大
    51nod 最小方差
    51nod 1065 最小正子段和
    P1280 尼克的任务
    牛客小白月赛2
    Codeforces Round #210 (Div. 1) B 二分+dp
    江西财经大学第一届程序设计竞赛
    51nod 1596 搬货物
  • 原文地址:https://www.cnblogs.com/AbelChen1991/p/3813940.html
Copyright © 2020-2023  润新知