用CocosCreator3.6开发一款拼图游戏(十四)

186 阅读2分钟

上次我们说到了拼图的初始化,但拼图的背景还没有开,今天我们就从这个开始,废话少说,下面直接开始。

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()

image.png

  (3)为了方便看效果,先取消下bg_pic节点的显示。

image.png

(4)效果如下

image.png

2. 接下来我们开发拼图方块的内容功能,其实跟华容道的也差不多的。

(1)打开game.ts脚本,声明一个预制体资源

      @property({type:Prefab})

    jigsawitemContent=null

(2)关联预制体资源,只需拖动itemJigsawContent预制体到右侧的Jigsawitem Content即可。

image.png  

3. 接下来,我们处理下预制体itemJigsawContent,因为我们之前是复制的,所以有些内容还是之前的,所以我们还要在改下。

(1)打开预制体itemJigsawContent,将我们之前绑定的item脚本删除

image.png

image.png  

(2)重新绑定num

image.png

  (3)最后,记得要保存。

image.png

  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;

image.png

好了今天就到这里了,主要说了添加拼图的方块背景和处理下itemJigsawContent预制体资源。下次我们继续。可能写的过程中还有很多不好的地方,希望大家能指出来,在此,谢谢大家