上次我们已经说到了方块的移动了,今天我们继续,今天我们主要说如何判断游戏是否通关成功,废话少说,下面直接开始。
1. 打开item.ts脚本。
(1)在初始化时记录每一个方块的坐标。
this.item_x=this.node.getPosition().x
this.item_y=this.node.getPosition().y
(2)要在顶部声明变量
2. 打开game.ts脚本
(1)在initklotski函数里初始化下isSuccess,用来判断下是否成功。初始时值为false
this.isSuccess=false
(2)记得要声名下isSuccess
(3)增加checkSuccess函数,用来判断是否成功。
//判断是否成功
checkSuccess(){
let is_su=true
let children=this.bg.children //获取bg下的所有节点
for (let i = 0; i < children.length; i++) {
let itemjs=children[i].getComponent(item)
if(itemjs ){ //
let pos=children[i].getPosition()
if(itemjs.item_x == pos.x && itemjs.item_y == pos.y ){
}else{
is_su=false
break
}
}
}
this.isSuccess=is_su
console.log('isSuccess='+this.isSuccess)
}
(4)在dealMove函数里调用checkSuccess函数。
this.checkSuccess()
(5)接下来,我们测试下,没问题。但这个函数些得不是很好,后面有时间再优化下。
3. 虽然判断了游戏通关是否成功,我们再稍微优化下,就是判断已经成功了,让玩家点击方块时不再移动。
(1)在判断是否能移动方块的checkMove函数里,加多一个判断条件。
if(this.isSuccess) return
(2)同时方块打乱时也调用了该函数,因此,在加多一个判断条件。在checkMove函数上加多一个参数。用来区分是那个地方调用该函数了
(3)在randomItem函数时调用checkMove时传true
(4)在点击回调函数onTouchEnd时调用checkMove传false****
(5)再次测试时,当成功通关时,点击方块时不移动了。
好了今天就说到这里了,主要说了游戏通关是否成功和通关后,点击方块时不再移动。下次我们继续。可能写的过程中还有很多不好的地方,希望大家能指出来,在此,谢谢大家