你是要传入一个图片在修改大小还是传入前就定义好图片大小?
如果仅仅需要自定义的刚体的贴图在绑定到刚体时拥有自定义的大小,可以在定义layaSprite时就传入它的大小
var role:any = Matter.Bodies.circle(x,y,50,roleOptions);//这里不需要定义texture或者layaSprite
var roleImg = new Laya.Sprite();
roleImg.loadImage("../xx.png"x,y,width,height);//直接定义roleImg的大小及相对位置
roleImg.zOrder = 2;//还能定义层级,这个层级是与laya直接相关的
role.layaSprite = roleImg;
role可以不断传入自定义的layaSprite,每次传入会覆盖之前的layaSprite,这样子会带来一个问题是每次都需要自定义 如果在后续代码中要实现一些例如:按下刚体让贴图变大,松开时贴图恢复等实时更新传入图片的大小及位置或者透明度等属性时,我这有一种解决的方案,代码如下:
var role:any = Matter.Bodies.circle(x,y,50,roleOptions);//这里不需要定义texture或者layaSprite
var roleImg = new Laya.Sprite();
roleImg.loadImage("../xx.png"x,y,width,height);//这里的xx.png可以随便选一张图片,透明的最好
roleImg.addchildAt(Image实例1,0);
roleImg.addchildAt(Image实例2,1);
role.layaSprite = roleImg;//将自定义的layaSprite传入role
调用
role.layaSprite.getChildAt(0).alpha = 0;//Image实例1变透明
这样子可以实时改变作为基底的roleImg子节点上的图片的大小等参数,至于为什么不直接改变roleImg的参数,这个我试过,并不行。