zoukankan      html  css  js  c++  java
  • 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 类没有贴图,也就是说在屏幕上单独建立一个节点是没有任何 效果的,但是可以通过这个“无形”的节点来控制屏幕上的节点
     
     
  • 相关阅读:
    Visual C# 插件构架实战
    用CSS实现表格单元格数据自动换行或不换行
    页面代码开发规范:CSS命名规范(参考)
    UML之业务建模
    在.NET环境下将报表导出Excel和Word(网络转载)
    asp.net数据导出到Excel (从网络摘操)
    ASP.NET(VB)把数据导出到EXCEL的一种方法(网上转载)
    关于ASP,ASP.NET,VB.NET里的MD5加密函数(转载)
    .net打包自动安装数据库(转载)
    Cannot load required extension: curl
  • 原文地址:https://www.cnblogs.com/AbelChen1991/p/3813940.html
Copyright © 2011-2022 走看看