动态创建的Sprite,根据this.node.width/height获得的Position,这样不行,应该怎么适配呢?
表示没看懂你的问题。。
亲,position不是应该通过x,y获得的吗?width和height是获得的size吧~
我拿的Canvas的width和height来设置X,Y
就是想通过代码适配,不用
这个。
那你就该设的设呗,不用就不用呗,自己算呗,不会算就看widget源码。
你把下面的那个"AlignOnce"去掉再试试看。
"Align Once"勾选上的话Widget的大小不会动态改变。
发你的代码出来吧?不然谁都不知道你的代码为何有问题

通过这样拿到几个X,Y组成几个点,然后加骨骼动画上去,想知道怎么适配
你调用init的地方在哪?你确定this.node.width是你想象中的么(会变化)?
在onLoad中调的,所以不会变化,应该怎么做呢?
你这个组件在节点里的顺序是怎么样的,节点包含了哪些组件,截个图吧
虽然我是小白,不过以前在论坛问过类似的问题了,我是这样解决的:
var ScreenH = cc.view.getVisibleSize().height;
var ScreenW = cc.view.getVisibleSize().width;
this.ScreenH = ScreenH;
this.ScreenW = ScreenW;
第一行获取设备屏幕高度,第二行获取设备屏幕宽度
比如说,我把一个显示分数的Label当做预制资源来处理,然后设置它的Position是这样弄的:
var ScoreLabel = cc.instantiate(this.ScorePrefab);
this.node.addChild(ScoreLabel);
ScoreLabel.setPosition(0,this.ScreenH * 0.45);
this.ScoreLabel = ScoreLabel;
this.ScoreLabel.getComponent(cc.Label).string = 'Score ......' + window.Score.toString();
然后计算所有节点的距离啊、速度啊,都是按这个ScreenH和ScreenW一定的比例来设置的
在onLoad里面初始化吗?
是呀,屏幕宽高取一次就可以了,就放在onload里
Label生成一次就够了,也放在onload里
计算节点间的距离什么的,需要每帧更新,就放update呗
ok,知道了,感谢
谢谢。。我基本明白了