Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; comment_reply_notification has a deprecated constructor in /home/wwwroot/hector/www.yiwuye.com/wp-content/plugins/comment-reply-notification/comment-reply-notification.php on line 13
cocos2d 3.x中,引擎坐标处理方式不一致,被坑吐血了 « 一梧叶

cocos2d 3.x中,引擎坐标处理方式不一致,被坑吐血了

 - by Hector

cocos2d 3.x中,引擎坐标处理方式不一致,被坑吐血了

ProtectedNode,Node的锚点都是(0,0)其余的sprite,widget,layer都是(0.5,0.5)。

为了简化描述,下面所有的控件锚点都是默认的(0.5,0.5)

在 beta2之前:

  1. widget添加子widget都是在中心,这点跟cocostudio是一致的。
  2. 其他sprite,layer添加子layer,sprite都是在左下角。

这两个不同我忍了。

在3.0正式版:

  1. widget添加子widget跟sprite,layer一样了,都是左下角。(升级都要改坐标,我忍了)
  2. cocostudio ui解析会错位,后面出了下面这个帖子:

    【通知】Cocos2dx 3.0正式版本UI解析错乱解决方案

    注意改动的代码,setPosition的时候将原来本来坐标是(0,0)的坐标硬生生加上了父控件的锚点偏移,这样达到了和UI编辑器看到的是一致的。

    你也许会想,我明明在编辑器里面设置的是(0,0)的坐标,怎么变了呢? 我说:呵呵

在cocos2d-js alpha2 :

widget添加子widget,在浏览器里面是中心,在手机里面又是左下角~~~~

一处编写,到处运行,你得加上下面的代码吧,我说,呵呵~~~

if(cc.sys.isNative) { child.setPosition(father.getSize().width / 2, father.getSize().height / 2); }

Leave a comment