1、在cocos2dx中,支持以下坐标系:

● 屏幕坐标系: 原点在左上角,X轴向右,Y轴向下。(比如处理触摸事件时CCTouch对象中的坐标就是屏幕坐标系)

● OpenGL坐标系: 原点在左下角,X轴向右,Y轴向上。(比如CCNode类的setPosition函数调用就是此坐标系)

● 世界坐标系:指相对于整个屏幕的坐标系,(0,0)就是屏幕的左下角

● 本地坐标系:相对于父对象的坐标。

2、锚点(AnchorPoint)


● 一句话来描述就是:锚点我们可以看成用一根图钉将一张纸或者相片钉在墙上的那个点。

● 锚点的x和y取值范围在[0,1]之间。

● 精灵(Sprite)的锚点默认为(0.5,0.5),默认是不忽略锚点的,所以

virtual bool isIgnoreAnchorPointForPosition();//默认返回false

●  其他节点比如说CCLayer和CCSense,锚点默认为(0,0),默认是忽略锚点

virtual bool isIgnoreAnchorPointForPosition();//默认返回true

所以,如果要在CCLayer和CCSense中设置锚点,要如下设置

  CCLayer* layer1 = CCLayerColor::create(ccc4(255,0,0,255), 300, 200);   addChild(layer1);layer1->ignoreAnchorPointForPosition(false);//设置不忽略锚点,此时锚点会变为默认的(0.5,0.5)layer1->setAnchorPoint(ccp(0,0));//然后再这里设置自定义锚点

3 坐标转换,详细解释如下,应该已经说得很明白了。


CCSprite *sprite1=CCSprite::create("CloseNormal.png");CCLOG("sprite1=(%f,%f)",sprite1->getContentSize().width,sprite1->getContentSize().height);sprite1->setAnchorPoint(ccp(1,1));sprite1->setPosition(ccp(20,40));CCSprite *sprite2=CCSprite::create("CloseNormal.png");sprite2->setPosition(ccp(-5,-20));sprite2->setAnchorPoint(ccp(1,1));CCPoint point1=sprite1->convertToNodeSpace(sprite2->getPosition());//以sprite1左下角为参考点(0,0)定位sprite2锚点的坐标,并返回CCPoint point2=sprite1->convertToWorldSpace(sprite2->getPosition());//以sprite1左下角为参考点(0,0),定位(-5,20)这个点为sprite2锚点坐标,并返回CCPoint point3=sprite1->convertToNodeSpaceAR(sprite2->getPosition());//以sprite1的锚点为参考点(0,0),定位sprite2锚点的位置,并返回CCPoint point4=sprite1->convertToWorldSpaceAR(sprite2->getPosition());//以sprite1的锚点为参考点(0,0),定位定位(-5,20)这个点为sprite2锚点坐标,并返回CCLOG("point1=(%f,%f)",point1.x,point1.y);CCLOG("point2=(%f,%f)",point2.x,point2.y);CCLOG("point3=(%f,%f)",point3.x,point3.y);CCLOG("point4=(%f,%f)",point4.x,point4.y);

输出结果如下:

sprite1=(40.000000,40.000000)    (图片大小)
point1=(15.000000,-20.000000)
point2=(-25.000000,-20.000000)
point3=(-25.000000,-60.000000)
point4=(15.000000,20.000000)


转载于:https://www.cnblogs.com/fzll/p/3954613.html

cocos2dx 坐标系统详解相关推荐

  1. [Cocos2D-X] Cocos2D-X TestCPP 详解(二)Action 总结

    Cocos2D-X TestCPP详解(二)Action 总结     在前两篇博文的学习过程中,我们已经对 Cocos2D-X 的 Action 有了一个了解.学而时习之嘛,我们今天就来把之前学过的 ...

  2. 我的世界java版如何看坐标_我的世界中怎么查看坐标,坐标系统详解

    本篇教程将通过图文的形式一步步教你在我的世界中查看理解坐标系统(XYZ). 坐标系统解释 我的世界地图有XYZ3个坐标,通过XYZ来显示你所处地图的区域. 下面是每个坐标的详解: X - 显示你在地图 ...

  3. cocos2d-x Schedule详解

    原理介绍 Cocos2d-x调度器为游戏提供定时事件和定时调用服务.所有Node对象都知道如何调度和取消调度事件,使用调度器有几个好处: 每当Node不再可见或已从场景中移除时,调度器会停止. Coc ...

  4. Apollo 5.5 源码学习笔记(五) | transform模块 | Apollo中的坐标系统详解

    本系列博客旨在记录自己在学习百度无人驾驶开源框架Apollo的心得和体会,欢迎大家阅读和点赞,并提出宝贵意见,大家相互学习,如需转载,请注明出处,谢谢! 文章目录 1.前言 2.车辆传感器布局 3.传 ...

  5. CocosCreator坐标系统详解

    新建一个CocosCreator场景,会在场景中自动生成一个Canvas节点,节点Size为(640,960),Anchor为(0.5,0.5),Position为(320,480),由于Canvas ...

  6. Cocos2d-x win7 + vs2010 配置图文详解(亲测)

    Cocos2d-x win7 + vs2010 配置图文详解(亲测) 下载最新版的cocos2d-x.打开浏览器,输入cocos2d-x.org,然后选择Download,本教程写作时最新版本为coc ...

  7. Android应用坐标系统全面详解

    Android应用坐标系统全面详解 原文链接:CSDN@工匠若水,http://blog.csdn.net/yanbober/article/details/50419117 1. 背景 去年有很多人 ...

  8. Android之应用坐标系统全面详解

    来自:http://blog.csdn.net/yanbober/article/details/50419117 1 背景 去年有很多人私信告诉我让说说自定义控件,其实通观网络上的很多博客都在讲各种 ...

  9. 视频教程-Cocos2d-x 游戏开发详解-Cocos

    Cocos2d-x 游戏开发详解 1999年开始从事开发工作,具备十余年的开发.管理和培训经验. 在无线通信.Android.iOS.HTML5.游戏开发.JavaME.JavaEE.Linux等领域 ...

最新文章

  1. layer.open嵌入地址链接
  2. Golang 随机获取本机可用端口
  3. [学习笔记]模拟电路技术
  4. 利用python数据可视化_想用Python做数据可视化?先迈过这个“坎”
  5. 机器学习理论与实战(十五)概率图模型03
  6. 《高效程序员的45个习惯》-之一
  7. 【无码专区2】序列划分(数学)
  8. 2021泗阳致远中学高考成绩查询,2021高考成绩什么时候发布?可通过哪些途径查询?...
  9. 「分布式系统理论」系列专题整理
  10. 性能测试之LoardRunner 手动关联二
  11. jquery_Ajax
  12. springboot - 应用实践(3)springboot的核心
  13. 原生WebView长截图 和 Tencent x5webview截长图
  14. jsp 之 入门 jsp代码块
  15. python catia二次开发_CATIA VBA二次开发教程|使用零件的Body生成Product
  16. 2000坐标系xy坐标几位_2000国家大地坐标系
  17. iOS面试 第三方库
  18. 服务器显示无vga电缆怎么回事,无vga电缆是什么意思
  19. 印刷机在纸厚发生变化时的压力调节
  20. PC党福音,育碧五款游戏大作登场E3 2014

热门文章

  1. linux进程打开链接数,Linux 进程打开最大文件连接数Too many open files
  2. java 线程 wait 一定要同步_Java 线程中调用wait为什么一定要在同步代码块中?
  3. 2021-01-07 matlab数值分析 常微分方程初边值问题数值解 标准龙格库塔四阶四段公式 欧拉法
  4. 2021-01-07 matlab数值分析 线性方程组的迭代解法 高斯-赛德尔迭代法
  5. python中重要的模块asyncio
  6. top与bottom、left与right的优先级
  7. js中for-in的坑
  8. 本月 上月 php,显示本月,上月,今天,今年以及各时间起点与
  9. MyBatis Plus自定义SQL使用条件构造器QueryWrapper
  10. 深度学习与计算机视觉系列(1)_基础介绍