上次我们说到了拼图的初始化,但拼图的背景还没有开,今天我们就从这个开始,废话少说,下面直接开始。
1. (1)打开game.ts脚本,增加 添加拼图方块背景addjigsawItem函数。
//添加拼图方块背景
addjigsawItem(){
for(let i=0; i<this.itemNum;i++){ //行
for(let j=0;j<this.itemNum;j++){ //列
let pos= new Vec3(-this.bgWith/2,-this.bgHight/2,0) //左下角第一个方块的坐标
let node_item=instantiate(this.item) //实例化
node_item.width=this.itemWith //设置方块的宽
node_item.height=this.itemHight//设置方块的高
let pos_end= new Vec3(pos.x+this.itemWith/2+ this.interval + (this.itemWith + this.interval) * j,pos.y+this.itemHight/2+ this.interval + (this.itemHight +this.interval) * i ,0)
node_item.setPosition(pos_end) //设置方块的位置
node_item.parent=this.bg //方块挂载载bg节点下
}
}
}
(2)在initjigsaw函数里调用addjigsawItem函数。
this.addjigsawItem()
(3)为了方便看效果,先取消下bg_pic节点的显示。
(4)效果如下
2. 接下来我们开发拼图方块的内容功能,其实跟华容道的也差不多的。
(1)打开game.ts脚本,声明一个预制体资源
@property({type:Prefab})
jigsawitemContent=null
(2)关联预制体资源,只需拖动itemJigsawContent预制体到右侧的Jigsawitem Content即可。
3. 接下来,我们处理下预制体itemJigsawContent,因为我们之前是复制的,所以有些内容还是之前的,所以我们还要在改下。
(1)打开预制体itemJigsawContent,将我们之前绑定的item脚本删除
(2)重新绑定num
(3)最后,记得要保存。
4. (1)打开itemJigsawContent.ts脚本,增加setOpacity函数,用来设置最后一块方块。
setOpacity(){
this.is_end=true
let color = new Color(); // 克隆当前颜色对象
color.a = 0; // 设置 alpha 值为 50%,范围为 0 ~ 255
this.node.getComponent(Sprite).color=color
}
(2)记得在顶部定义 和引入Color,Sprite等。
is_end: boolean;
好了今天就到这里了,主要说了添加拼图的方块背景和处理下itemJigsawContent预制体资源。下次我们继续。可能写的过程中还有很多不好的地方,希望大家能指出来,在此,谢谢大家