上次我们说到了当调用checkMove 函数时,要区分是拼图的还是华容道的,今天我们继续来处理这个问题。废话少说,下面直接开始。
1.打开game.ts 脚本,在start函数里加gameType,0表示拼图,1表示华容道。
this.gameType=0//0 表示拼图 1表示华容道
记得顶部声明gameType
gameType: number;
2.(1)在initklotski函数里加
this.gameType=1
(2)同样也要在initjigsaw函数里加
this.gameType=0
3. (1)checkMove 加判断处理
let itemType=''
if(this.gameType==0){
itemType='itemJigsawContent'
}else{
itemType='item'
}
(2)同样,获取组件也是根据类型动态进行获取。
let itemjs=children[i].getComponent(itemType)
4. (1)在dealMove函数里加判断处理
let itemType=''
if(this.gameType==0){
itemType='itemJigsawContent'
}else{
itemType='item'
}
(2)同样,获取组件也是根据类型动态进行获取。
5.(1)checkSuccess函数里,也要今行处理
let itemType=''
if(this.gameType==0){
itemType='itemJigsawContent'
}else{
itemType='item'
}
(2)同样,这里获取组件也是根据类型动态进行获取。
5.(1)在showEndItem函数里也要进行处理。
let itemType=''
if(this.gameType==0){
itemType='itemJigsawContent'
}else{
itemType='item'
}
(2)同样,这里获取组件也是根据类型动态进行获取。
6. 接下来,我们来完成下方块的打乱问题。
(1)在Initjigsaw函数里调用打乱顺序函数randomItem
//随机方块
for (let i = 0; i < 100; i++) {
this.randomItem()
}
(2)在randomItem函数里,同样也要对游戏的类型进行判断。
let itemType=''
if(this.gameType==0){
itemType='itemJigsawContent'
}else{
itemType='item'
}
(3)同样,这里获取组件也是根据类型动态进行获取。
let itemjs=children[i].getComponent(itemType)
到这里,有没有发现,很多函数的进行了相同的处理,是不是可以将这部分的代码抽离出来呢,这个优化就留给你们了。
好了今天就到这里了,主要说了游戏类型的处理。下次我们继续。可能写的过程中还有很多不好的地方,希望大家能指出来,在此,谢谢大家