zoukankan      html  css  js  c++  java
  • cocos2dx中坐标系

     CCNode类的setPosition,getPosition函数如果是一个Node的Child则获取的坐标就是该Node的本地坐标

    另一个关键问题就是在cocos2d-x里就是各种对象的大小问题。因为在cocos2d-x里CCNode对象有缩放的方法setScaleX和setScaleY。所以在获取对象大小的时候必须根据情况明确指定获取对象原始大小,还是缩放后的大小。当然cocos2d-x里提供了对应函数来完成这些操作:
    getContentSize函数来获得节点原始的大小。只是逻辑尺寸,不是像素;
    boundingBox函数来获得经过缩放和旋转之后的外框盒大小。
    getContentSizeInPixels获得的是像素点大小
     
    像素点和逻辑点关系:逻辑点大小 = 像素大小/contentScaleFactor.
    getVisibleSize:获得视口(可视区域)的大小,若是DesignResolutionSize跟屏幕尺寸一样大,则getVisibleSize便是getWinSize。
    getVisibleOrigin:表示可视区域的起点坐标,这在处理相对位置的时候非常有用,确保节点在不同分辨率下的位置一致。
     
    坐标转换:
     
    GL坐标系,cocos2d-x默认坐标系:
     
    CCPoint CCDirector::convertToGL(const CCPoint& uiPoint)
    {
         CCSize s = m_obWinSizeInPoints;
         float newY = s.height - uiPoint.y;
    }
    屏幕坐标系:   默认原点在左上角
    CCPoint CCDirector::convertToUI(const CCPoint& glPoint)
    {
         CCSize winSize = m_obWinSizeInPoints;
         float oppositeY = winSize.height - glPoint.y;
     
         return ccp(glPoint.x,oppositeY);
    }
     
    两种坐标的X方向没有变,只变了Y方向,cocos2d-x里默认的GL坐标系,即左下角为原点ccp(0.0f,0.0f)
  • 相关阅读:
    纯虚函数和抽象类
    继承和多态
    C++运算符重载
    构造函数
    C++对c中函数的拓展,函数重载
    c++ c的拓展
    linux终端下常用快捷键
    SEED-DVS6467_SDK的交叉编译环境搭建问题
    Linux内核编译
    Python简单爬虫记录
  • 原文地址:https://www.cnblogs.com/kefeiGame/p/7353884.html
Copyright © 2011-2022 走看看