-
canvas背景图设置,widget:组件下top:0,bottom:0,left:0,right:0的情况下,在某些长度超出的手机,背景图会被拉伸。 解决:背景图;bottom,top不设置,设置一个layout节点 target设置为相对canvas对齐,然后头部,底部截取,背景图片头部和底部相应底色做填充。cocos(似乎有色差),也可以截取一像素图片底色做填充,高度设为背景的50%,且放到背景图层级之下,保证背景图在底色图之前渲染,避免图片重叠带来的边框重叠。 -
图片帧动画,如果图片是漏空,勾选trim,会剪切图片多余的漏空部分,会导致动画在原地蠕动的样子,所以要去掉此选项,如果需要自动开始动画,勾选动画的play on Load(游戏开启默认开启动画),如果是循环播放,编辑动画clip 动画模式开启loop模式。 -
cocos的文字会自动增加高度,所以文字的位置需要自计算 ,相对父元素,节点距离下方多少像素减去节点距离上方多少像素的差值除以2,所得就是节点的高度位置,为正代表在y的正半轴,为负代表在y的负半轴。 -
图片九宫格开启九宫格模式,图片被压缩时,图片的四个角,不会被往里压缩,开启九宫格模式在节点的Sprite中type选择SLICED,可以编辑图片调节你希望不被压缩的四个角。 -
需要做列表循环类似的一个节点多次使用,可以将该节点设置为预制体,将做好的一个节点拖动到assets,就会生成预制体,预制体,每次改动需要保存预制体才能生效,如果该预制体初始是隐藏状态,需要取消隐藏状态做保存,再隐藏,保存scene场景生效。 -
canvas场景下,如果canvas场景下,多个节点公用一个脚本,将需要绑定的脚本,绑定给canvas节点,不要再canvas场景下的多个节点绑定同一个脚本文件,不然会导致生周期重复执行,如果在生命周期下接口等操作,会导致重复请求,所以将共用的脚本文件绑定给canvas,然后如果其他节点需要用到该脚本,就将canvas节点绑定给它clickEvents,直接将canvas拖动到clickEvents的第一个所需参数下,就可以拿到你需要的脚本,避免生命周期重复执行。 -
canvas 进度条的使用,先给父级开启slider组件,及给父级添加slider组件,slider组件的Handle(直接将子元素的滑块按钮拖动到Handle下)设置给父级的子元素,然后给可以拖动的子元素添加按钮组件,按钮组件的target设置为该子元素,直接将该子元素拖动到按钮组件的target下面。 注:滑动条的基点应该设置到最右边,不然拖动可能导致,滑动条超出父级元素。 设置回调事件 栗子:
onLoad() {
this.processFather = cc.find('Canvas/game_card/progressBar/radius-10')
this.processBg = cc.find('Canvas/game_card/progressBar/radius-10/radius-6/radius-6-2')
this.process.on('slide', this.callback, this);
this.recCardNum = cc.find('Canvas/game_card/card_num/num').getComponent(cc.Label)
}
callback (slider) {
this.processBg.width = this.processFather.width * slider.progress
let CardNum = Math.ceil(slider.progress * 10)
this.recCardNum.string = CardNum === 0 ? 1 : CardNum
}
|