位置: 编程技术 - 正文
推荐整理分享cocos2d getPosition()取不到实际坐标问题,希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!
最近做感觉遇到的最多的就是坐标问题,感觉需要总结一下,不废话,直接上我的结论
1、cocos2d,节点默认坐标(0,0),默认锚点(0.5,0.5),顶点节点(最上层节点)的坐标以世界坐标为基准(也就是此节点的坐标(0,0)就是世界坐标的(0,0))。默认层次若没有声明Z坐标,则先addchild()的在下层,后addchild()的在上层(上层覆盖下层),默认父节点在子节点上层。
2、getposition()获取子节点坐标时,获取到的不是世界坐标,而是节点坐标,也就是相对父节点左下角的坐标,也就是以父节点的左下角(锚点0,0)为新坐标的原点形成的新坐标。这样很容易弄错的说,要获取子节点世界坐标,可以用这个语句:要获取CCNode *obj;的世界坐标
CCPoint objpoint = obj->getParent()->convertToWorldSpace(obj->getPosition()));
还有一点容易忽略,我们在对一个节点进行包装的时候其实就是让这个节点有了父节点,例如我新建了一个map类,在map类里面添加了两个background精灵,这样其实background是map的内嵌对象,这样map就是两个精灵的父节点,我取background的坐标其实取的是相对父节点的坐标。
(ps:详解见我的另外一篇文章)
3、对父节点进行的移动会造成它的所有子节点会随着父节点移动,这样结论2也验证了对随父节点运动的子节点取getPosition()的不会改变事实.
同时,对父节点取setScale(),子节点也会缩放,但是对子节点取getPosition()也还是没有缩放的,这样会造成取得比实际(世界坐标下)大一倍。
cocos2d使用websocket,编译不过,解决办法 最近在看Cocos2d,打算客户端使用cocos2d,服务端使用websocket。用vs编译下cocos2d,出乎意料的方便。而且跨平台方面做得也很方便(貌,虽然我还没测试
【Cocos2d-x Lua笔记四】Quick-Cocos2d-x 什么是Quick?Quick与Cocos2dLua有什么关系?quick是一个运行在cocos2d-lua之上的游戏框架和一些扩展的集合。在前一个月左右quick团队已经接手了cocos2d-xLua的开
cocos2d setContentSize()不能改变绘制大小问题 setcontentsize并不能改变绘制大小,改变的仅仅是在屏幕上绘制的位置,例如setContentSize比实际小,但是还是会全部显示在屏幕上,一般会和setAnchorPoint一
标签: cocos2d getPosition()取不到实际坐标问题
本文链接地址:https://www.jiuchutong.com/biancheng/369129.html 转载请保留说明!友情链接: 武汉网站建设