cocos2dx中坐标系
2024-10-20 20:58:42
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)
最新文章
- Windows Server 2008 R2常规安全设置及基本安全策略
- Python 学习之路 (一):基础
- mapreduce核心原理
- java的WebService实践(cxf)
- OpenJudge 666:放苹果
- 我应该直接学Swift还是Objective-C?
- 2463: [中山市选2009]谁能赢呢?- BZOJ
- hdoj 2112 HDU Today
- lintcode:previous permutation上一个排列
- YOLO: 3 步实时目标检测安装运行教程 [你看那条狗,好像一条狗!]
- Redis数据类型List
- PHP从入门到精通(五)
- Flash:DisplayObject的矩阵旋转(移动/修改注册点,修改旋转点)
- spm教程
- JDBC的批量插入操作
- 20190401-记录一次bug ConstraintViolationException
- __str__&;__repr__
- ACM数论-素数
- hdu1312Red and Black(迷宫dfs,一遍)
- BUAA_OO_电梯系列
热门文章
- 格式化SQL和逆格式SQL
- mobiscroll时间控件
- GEF入门实例_总结_05_显示一个空白编辑器
- Linux-监控与安全运维之Nagios
- mount: error mounting /dev/root on /sysroot as ext3: Invalid argument
- linux大于2T的磁盘格式化
- [独孤九剑]Oracle知识点梳理(六)数据库常用对象之Procedure、function、Sequence
- poj2374 Fence Obstacle Course[线段树+DP]
- [调试日志]用php函数var_export把多维数组file_put_contents写入并打印到日志,以方便调试之多维数组,用php5中的var_export函数示例,顺带介绍http_build_query(转)
- BZOJ3403:[USACO2009OPEN]Cow Line